之前写了一个动态行转列的SQL,运行并正常而且之后数据库没有进行更改。现在无缘无故该语句不能使用了。求SQL大神帮忙
declare @s nvarchar(4000)
declare @CoNo nchar(8)
set @CoNo='CS123456'
Select @s=isnull(@s+',','')+quotename([Date]) from Record group by[Date] --isnull(@s+',','') 去掉字符串@s中第一个逗号
exec('select distinct [sNo],[CoNo],'+@s+',[总成绩] from (select *,[总成绩]=Count([Time])over(partition by [sNo],[CoNo])
from Record ) a
pivot (max([Time]) for [Date] in('+@s+'))b ')
错误信息如下:
消息 1038,级别 15,状态 4,第 1 行
缺少对象或列名,或者对象或列名为空。对于 SELECT INTO 语句,请确保每列均具有名称。对于其他语句,请查找空的别名。不允许使用定义为 "" 或 [] 的别名。请将别名更改为有效名称。
消息 1038,级别 15,状态 4,第 2 行
缺少对象或列名,或者对象或列名为空。对于 SELECT INTO 语句,请确保每列均具有名称。对于其他语句,请查找空的别名。不允许使用定义为 "" 或 [] 的别名。请将别名更改为有效名称。
------解决思路----------------------
动态行转列,说明 Date 有空的记录,你检查一下数据