sql server - SQL pivot query error: Unclosed quotation mark -
i have 3 tables (1. emp, 2. onleave,3.daysweeks). im trying write pivot query displyas empname, , calenderdates columns)
im getting following error, when try run pivot query.
1.unclosed quotation mark after character string '2016-12-31])) pvt'.
2.incorrect syntax near '2016-12-31])) pvt'
declare @cols nvarchar(max), @query nvarchar(max) select @cols = stuff((select ',' + quotename([caldate]) daysweeks xml path(''), type).value('.', 'nvarchar(max)') ,1,1,'') select @query = 'with cte ( select empdays.employee,empdays.caldate, isnull(v.vacationtype,1) leavestatus dbo.onleave v right outer join (select e.empid employee, dw.caldate caldate, dw.dayofweekname downame daysweeks dw, dbo.emp e dw.calyear = 2016 , dw.monthnumber=1) empdays on v.empid = empdays.employee , v.startingdate <= empdays.caldate , v.endingdate >= empdays.caldate ) select * cte pivot (max(cte.leavestatus) cte.caldate in([' + @cols + '])) pvt' exec sp_executesql @query
since quotename
added here
stuff((select ',' + quotename([caldate])
you don't need [
, ]
here,
cte.caldate in([' + @cols + '])) pvt'
which wrong. make entire pivot column list consider single column
change
cte.caldate in(' + @cols + ')) pvt'
update: filter records passing deptid
value (@deptid smallint =1). change query this
declare @deptid smallint = 1 ...... right outer join (select e.empid employee, dw.caldate caldate, dw.dayofweekname downame daysweeks dw, dbo.emp e dw.calyear = 2016 , dw.monthnumber=1 , e.deptid = @deptid ) empdays ...... exec sp_executesql @query,n'@deptid samllint',@deptid = @deptid
Comments
Post a Comment