以下sql语句出现错误。错误读取:
FROM子句中的错误:“ SELECT”附近 无法解析查询
错误消息:关键字“ SELECT”附近的语法不正确。 ')'附近的语法不正确
关于为什么的任何想法?
"file_put_contents(/assets/uploads/15525609678807.svg): failed to open stream: No such file or directory",
"exception": "ErrorException",
"file": "/..../vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/BaconQrCodeGenerator.php",
"line": 85,
答案 0 :(得分:0)
您必须为“最后一周”提供一些空值
SELECT [Order], Dept, Area,'' as [Final Week], Total
FROM dbo.DeptSummary10Weeks
只需尝试以下方法...
Declare @var nvarchar(max)
Select @var = coalesce(@var +',','') + cast(WeekNum as nvarchar(20)) from dbo.[10Weeks]
FOR [Final Week] IN ('+@var+') AS PivotTable;
答案 1 :(得分:0)
尝试使用显式WeekNum
并在查询中添加右括号:
SELECT *
FROM (
SELECT [Order], Dept, Area, [Final Week], Total
FROM dbo.DeptSummary10Weeks
) AS SourceTable
PIVOT (Sum(Total) FOR [Final Week] IN ([1], [2], [3], [4], [5], [6], [7])) AS PivotTable
更新:
尝试使用动态数据透视表:
declare @cols nvarchar(max);
declare @sql nvarchar(max);
select @cols = stuff((
select distinct
' , ' + CONCAT('[', CONVERT(varchar(10), t.WeekNum), ']')
from dbo.[10Weeks] t
order by 1
for xml path (''), type).value('.','nvarchar(max)')
,1,2,'')
select @sql = '
SELECT *
FROM (
SELECT [Order], Dept, Area, [Final Week], Total
FROM dbo.DeptSummary10Weeks
) AS SourceTable
PIVOT (Sum(Total) FOR [Final Week] IN (' + @cols + ') ) AS PivotTable'
exec(@sql);