0
我有一個動態的PIVOT部分工作。當我不使用變量請求where子句,但只使用特定的數字時,它可以工作。動態變量存儲結果在臨時表和可變錯誤
我也希望能夠將結果存儲到臨時表中。
是否有可能在動態數據透視表中有一個where子句變量,是否可以將結果保存到臨時表中?
這裏是行不通
declare @CourseID int = 2
DECLARE
@cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(UnitID)
FROM LMS_Unit_Status where CourseID = @CourseID
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT LearnerID, ' + @cols + ' from
(select LearnerID,UnitID,Completed from LMS_Unit_Status where CourseID = @CourseID) as s
pivot
(
min(Completed)
for UnitID in (' + @cols + ')
) p'
execute(@query);
Msg 137, Level 15, State 2, Line 2
Must declare the scalar variable "@CourseID".
感謝
感謝@Arek - 我試過,但我得到轉換爲nvarchar值「選擇LearnerID時 轉換失敗的消息'消息245,級別16,狀態1,第12行,[CU2306]進入#UnitReport從 (選擇LearnerID,UnitID,從LMS_Unit_Status完成,其中CourseID ='到數據類型int.' – gillers322