You likely need UNPIVOT operator rather than PIVOT, as inDECLARE @startDT as varchar(10)SET @startDT = '04/04/2011';WITH CTE AS ( SELECT staffID, dbo.mins_to_hours(SUM(dbo.hours_to_mins([break]))) AS [break], dbo.mins_to_hours(SUM(dbo.hours_to_mins(sick))) AS sick, dbo.mins_to_hours(SUM(dbo.hours_to_mins(annualLeave))) AS annualLeave FROM Timesheet WHERE date BETWEEN CONVERT(DATETIME, @startDT, 103) AND DATEADD(DAY, 4, CONVERT(DATETIME, @startDT, 103)) GROUP BY staffID)SELECT StaffId, Category, Duration FROM AUNPIVOT ([Duration] FOR Category IN ([break],[sick],[annualLeave]))U