|
Gary Costigan
Yak Posting Veteran
95 Posts |
Posted - 2005-08-04 : 15:04:51
|
| Greetings to all,I am building a query in a Pivot Table style format and am having a small problem. I need to track 5 categories in 2005. My problem is that some stations have not coded any Hour values to the category, and the categories need to appear in each report or it throws everything off.Here is my Query:SELECT CATEGORY as 'CATEGORY',SUM([JAN]) as 'JAN',SUM([FEB]) as 'FEB',SUM([MAR]) as 'MAR',SUM([APR]) as 'APR',SUM([MAY]) as 'MAY',SUM([JUN]) as 'JUN',SUM([JUL]) as 'JUL',SUM([AUG]) as 'AUG',SUM([SEP]) as 'SEP',SUM([OCT]) as 'OCT',SUM([NOV]) as 'NOV',SUM([DEC]) as 'DEC'FROM( SELECTCASE WHEN PayCodes_Table.LostTimeReport = 'SK' THEN '1.SK' WHEN PayCodes_Table.LostTimeReport = 'SKF' THEN '2.SKF' WHEN PayCodes_Table.LostTimeReport = 'SKU' THEN '3.SKU' WHEN PayCodes_Table.LostTimeReport = 'FML' THEN '4.FML' WHEN PayCodes_Table.LostTimeReport = 'OTHER' THEN '5.OTHER' ELSE 'Not Included' END AS 'CATEGORY', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 01 THEN hours ELSE 0 END) as 'JAN', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 02 THEN hours ELSE 0 END) as 'FEB', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 03 THEN hours ELSE 0 END) as 'MAR', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 04 THEN hours ELSE 0 END) as 'APR', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 05 THEN hours ELSE 0 END) as 'MAY', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 06 THEN hours ELSE 0 END) as 'JUN', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 07 THEN hours ELSE 0 END) as 'JUL', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 08 THEN hours ELSE 0 END) as 'AUG', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 09 THEN hours ELSE 0 END) as 'SEP', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 10 THEN hours ELSE 0 END) as 'OCT', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 11 THEN hours ELSE 0 END) as 'NOV', SUM (CASE DATEPART(Month,ReportingPeriodDate) WHEN 12 THEN hours ELSE 0 END) as 'DEC'FROM Total_Hours_dataJOIN PayCodes_Table ON Total_Hours_data.PayCode = PayCodes_Table.PayCodeJOIN Branches_Table ON Total_Hours_data.BranchCode = Branches_Table.BranchCodeWHERE Total_Hours_data.StationCode = '0600'AND Branches_Table.BranchCategorySmall = 'MNTC' AND Branches_Table.MAINTENANCECATEGORIES = 'MNTC - QA'AND PayCodes_Table.LostTimeReport IN ('SK', 'SKF', 'SKU', 'FML', 'OTHER')AND (DATEPART (YY,Total_Hours_Data.ReportingPeriodDate) = DATEPART (YY,GETDATE()))GROUP BY PayCodes_Table.LostTimeReport)XGROUP BY CATEGORYORDER BY CATEGORY ASC Here is the result for the station I'm having a problem with:1.SK 261.0 226.0 249.0 177.0 142.0 105.0 5.0 .0 .0 .0 .0 .03.SKU 37.0 24.0 21.0 13.0 8.0 5.0 5.0 .0 .0 .0 .0 .05.OTHER 16.0 50.0 10.0 .0 10.0 30.0 18.0 .0 .0 .0 .0 .0My question is how do I get categories 2 and 4 to appear with a row of zeros? I've tried using a SUM(CASE inside the category area without any luck.As always any help is greatly appreciated!GC |
|