Click here to Skip to main content
15,917,795 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
SQL
select * from
(

SELECT [TM_UserID]
      ,[FullName]
      ,[Worked_dte]
      ,[Worked_Hours]

  FROM @Reporting_User_Timesheet where [worked_dte] BETWEEN  '2014-04-04'  AND  '2014-04-06'
) as sourceTable
Pivot
(
    sum([Worked_Hours]) for
    [Worked_dte] in ([2014-04-04],[2014-04-05],[2014-04-06])
) as PivotTable
Posted

1 solution

TRY THIS:

SQL
DECLARE @cols AS NVARCHAR(MAX);
DECLARE @query AS NVARCHAR(MAX);

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Worked_dte) FROM User_Timesheet
                      FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)')  , 1, 1, '');

SELECT @query = 'SELECT * FROM
		(
		SELECT
		[TM_UserID],
		[FullName],
		[Worked_dte],
		[Worked_Hours]
	  FROM User_Timesheet  where [worked_dte] BETWEEN  ''2014-04-04''  AND  ''2014-04-06'' 
	) AS t
	PIVOT 
	(
	  MAX(Worked_Hours) 
	  FOR Worked_dte IN( ' + @cols + ' )' +
	' ) AS p ; ';

	 execute(@query);
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900