Hello,
I'm needing some (alot) help developing a subquery that will tell me the percentage of records in that are in Time that equal On-Time for each unique value in Cycle Code. Here's my primary query.
SELECT DISTINCT
od.Work_Code AS Work_Code,
CASE WHEN
CONVERT(char(10),od.Projected_Ship_Date,101) < CONVERT(char(10),tt.Time_End,101)
THEN 'Late'
WHEN rsn.Status = 'Closed'
THEN 'Late'
ELSE 'On-Time'
END AS Time,
od.Product_Code AS Product_Code,
CAST(LEFT(od.Part_Family_Code,2) AS varchar) AS FBGM,
CASE WHEN cd.Commissionable = 0
THEN ROUND(qbd.Profit_Percent, 2)
ELSE ROUND(qbd.Profit_Percent + cd.Commission_Percent, 2) END AS Budgeted,
ROUND(ISNULL(qbd.Profit_Percent+cd.Commission_Percent,qbd.Profit_Percent),2) AS Old_Budgeted,
CASE WHEN vo.Miscellaneous_Charge__Unit_Cost IS NULL
THEN ROUND((oh.Gross_Amount-(oh.Total_Labor_Cost+oh.Total_Material_Cost))/ISNULL(NULLIF (oh.Gross_Amount,0),1),4)*100
ELSE
ROUND((oh.Gross_Amount-(oh.Total_Labor_Cost+oh.Total_Material_Cost
+vo.Miscellaneous_Charge__Unit_Cost))/ISNULL(NULLIF(oh.Gross_Amount,0),1),4)*100
END AS Actual,
rsn.Status AS Manager_Review_Status,
oh.Gross_Amount AS Gross_Amount,
oh.Total_Labor_Cost AS Total_Labor_Cost,
oh.Total_Material_Cost AS Total_Material_Cost,
vo.Miscellaneous_Charge__Unit_Cost AS Misc_Unit_Cost,
vo.Miscellaneous_Charge__Miscellaneous_Charge_Code AS Misc_Charge_Code,
CONVERT(char(10),od.Projected_Ship_Date,101) AS Projected_Ship_Date,
od.User_Text2 AS Reporting_Cycle_Code,
CONVERT(char(10),tt.Time_End,101) AS End_Ticket_Date,
oh.Order_Number AS Order_Number,
sco.Salesman_Name AS Salesman_Name,
cd.Commission_Percent AS Commission_Percent,
od.Product_Code AS Product_Code,
od.Part_Number AS Part_Number,
cd.Commissionable AS Commissionable,
tt.Pieces_Good AS Pieces_Good
FROM dbo.Order_Detail od
LEFT OUTER JOIN dbo.Routing_Header rh ON od.Order_Header_ID = rh.Order_Header_ID
LEFT OUTER JOIN dbo.vRouting_Step_Number_Line_Item_Specification rsn ON rh.Routing_Header_ID = rsn.Routing_Header_ID
LEFT OUTER JOIN dbo.Time_Ticket tt ON rsn.Routing_Header_ID = tt.Routing_Header_ID
LEFT OUTER JOIN dbo.Order_Header oh ON od.Order_Header_ID = oh.Order_Header_ID
LEFT OUTER JOIN dbo.Quantity_Break_Detail qbd ON od.Order_Detail_ID = qbd.Order_Detail_ID
LEFT OUTER JOIN dbo.Billing_Detail bd ON oh.Part_Number_ID = bd.Part_Number_ID
LEFT OUTER JOIN dbo.vQV_SalesmanCode_Orders sco ON od.Order_Detail_ID = sco.Order_Detail_ID
LEFT OUTER JOIN dbo.Commission_Distribution cd ON od.Order_Detail_ID = cd.Order_Detail_ID
LEFT OUTER JOIN dbo.vSalesman_Code sc ON cd.Salesman_Code = sc.Salesman_Code
LEFT OUTER JOIN dbo.Employee_Code ec ON od.Employee_Code_Routed_By = ec.Employee_Code
LEFT OUTER JOIN dbo.User_Code uc ON ec.User_Code = uc.User_Code
FULL OUTER JOIN dbo.vOrder vo ON oh.Order_Header_ID = vo.Order_Header_ID
WHERE
od.Product_Code LIKE 'IN CL%' AND
qbd.Profit_Percent <> 0 AND
od.Profit_Percent <> 0 AND
od.Part_Family_Code NOT IN ( '' , '0% - FBGM - WO' , '99' , '99% - FBGM' ) AND
od.Company_Code ='AIN' AND
ROUND(ISNULL(qbd.Profit_Percent+cd.Commission_Percent,qbd.Profit_Percent),2) < 99 AND
rsn.Operation_Code = 'FINAL MANAGER REVIEW' AND
rsn.Status IN ( 'Closed' , 'Finished', 'Pending', 'Future', 'Current' ) AND
od.User_Text2 LIKE ('%WENDY%') AND
(tt.Pieces_Good IS NULL OR tt.Pieces_Good = 1)
Order By od.Work_Code ASC
This gives me data that looks like this.
28A | Late | IN CL | ...|...|...|...|
28A | On-Time| IN CL | ...|...|...|...|
28A | On-Time| IN CL | ...|...|...|...|
28A | On-Time| IN CL | ...|...|...|...|
28B | On-Time| IN CL | ...|...|...|...|
28B | On-Time| IN CL | ...|...|...|...|
28B | Late | IN CL | ...|...|...|...|
28C | On-Time| IN CL | ...|...|...|...|
I'm looking to get Results like
28A | 75 | IN CL
28B | 66.6 | IN CL
28C | 100 | IN CL
Any help or direction would be greatly appreciated.