I am using the following query to retrieve some results
SELECT CONVERT(varchar, TS.StaffID) + CHAR(13)
+ SUBSTRING ( TS.GivenName, 1 , 1 ) + '.' + CHAR(13)
+ TS.Surname AS EmployeeInfo, SH.Hours,ts.UnitID,sh.RowID
FROM dbo.tbl_TimesheetStaff AS TS
Left OUTER JOIN
dbo.tbl_StaffHours AS SH ON
SH.ActivityUnitID = TS.ActivityUnitID
AND Sh.StaffID=ts.StaffID
WHERE TS.UnitID=1
The resulting set looks like
EmployeeInfo Hours UnitID RowID
114 H. Bar 73.71 111 401
114 H. Bar 42.44 111 402
115 M. Cha 20.39 111 401
115 M. Cha 3.616 111 402
116 Q. Xyz 20.39 111 401
116 Q. Xyz 3.61 111 402
Now what I want is to convert the EmployeeInfo column values to column names
114 H. Bar 115 M. Cha 116 Q. Xyz RowID
73.71 20.39 20.39 401
42.44 3.616 3.61 402
The number of rows in EmployeeInfo can vary and hence I need a dynamic pivot function.
Any clues..?
try this: