Rajana
Starting Member
2 Posts |
Posted - 2012-07-27 : 05:46:58
|
I am trying to take Attendance sheet in pivot format. Here is my entire query. and error message. Whats wrong in this.Thanks in advance.------------------------DECLARE @sql AS varchar(max)DECLARE @pivot_list AS varchar(max) DECLARE @select_list AS varchar(max) SELECT @pivot_list = COALESCE(@pivot_list + ', ', '') + '[' + CONVERT(varchar, DayNum) + ']', @select_list = COALESCE(@select_list + ', ', '') + '[' + CONVERT(varchar, DayNum) + '] AS [' + CONVERT(varchar, DayNum) + ']' FROM ( SELECT DISTINCT DayNum FROM ( select DATEPART(DAY, CAST(CONVERT(VARCHAR,swipe_datetime,101) as date)) AS DayNum, '1' as Present,A.emp_CDSID from CDSI_DB.dbo.EmpSwipe as A where A.emp_CDSID in (select emp_CDSID from CDSI_DB.dbo.Employee) AND CAST(CONVERT(VARCHAR,A.swipe_datetime,101) as datetime) between '04/01/2012' and '04/10/2012' ) as EmpSwipe ) AS DayNums SET @sql = ';with p AS ( SELECT DayNum, 1 as Present,A.emp_CDSID FROM CDSI_DB.dbo.EmpSwipe ) SELECT emp_CDSID, ' + @select_list + ' from p PIVOT ( Max(Present) FOR DayNum IN ( ' + @pivot_list + ') ) AS PivotTable' Print @sql Execute @sql ----------------------------Error as follows..---when--Print..;with p AS ( SELECT DayNum, 1 as Present,A.emp_CDSID FROM CDSI_DB.dbo.EmpSwipe ) SELECT emp_CDSID, [3] AS [3], [6] AS [6], [9] AS [9], [7] AS [7], [10] AS [10], [4] AS [4], [2] AS [2], [5] AS [5] from p PIVOT ( Max(Present) FOR DayNum IN ( [3], [6], [9], [7], [10], [4], [2], [5]) ) AS PivotTable--when--Execute Msg 203, Level 16, State 2, Line 30The name ';with p AS ( SELECT DayNum, 1 as Present,A.emp_CDSID FROM CDSI_DB.dbo.EmpSwipe ) SELECT emp_CDSID, [3] AS [3], [6] AS [6], [9] AS [9], [7] AS [7], [10] AS [10], [4] AS [4], [2] AS [2], [5] AS [5] from p PIVOT ( Max(Present) FOR DayNum IN ( [3], [6], [9], [7], [10], [4], [2], [5]) ) AS PivotTable' is not a valid identifier.----- |
|