0
我的表中的数据是这样的:SQL Server查询
我使用这个查询:
DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX)
SELECT @cols = STUFF((SELECT distinct ','+ QUOTENAME('COMPLETE_' + cast(row_number() over(partition by CID order by CID) as varchar(10)))
FROM allleads
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
SET @query = 'SELECT CustomerName, address, CID, ' + @cols +
' FROM (SELECT CustomerName, address, CID, COMPLETE,''COMPLETE_''+ CAST(row_number() over (partition by CID order by RecordDate) as varchar(10)) val from allleads) x PIVOT (MAX(COMPLETE) for val in (' + @cols + ')) p ' execute(@query)
工作正常。
但当我日之间添加一个搜索条件是这样的:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX),
@dt AS VARCHAR(10),
@dt1 AS VARCHAR(10) set
@dt='2017/05/18' set
@dt1='2017/07/10'
select @cols = STUFF((SELECT distinct ','+
QUOTENAME('COMPLETE_' +
cast(row_number()
over(partition by CID order by CID) as varchar(10)))
from allleads FOR XML PATH(''),
TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'')
set @query = 'SELECT CustomerName,address,CID, ' +
@cols + ' from (select CustomerName,address,CID, COMPLETE,''COMPLETE_''+
cast(row_number()
over(partition by CID order by RecordDate) as varchar(10))
val from allleads **where convert(varchar(10),RecordDate,111) between '[email protected]+' and '[email protected]+'**) x pivot(max(COMPLETE) for val in (' + @cols + ')) p ' execute(@query)
则显示错误:
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value '2017/05/19' to data type int.
请帮助。
在此先感谢。
'@ query'的** exact **值是什么? – mjwills