다음 쿼리에서 formid 매개 변수로 인해 오류가 발생했습니다. formid 매개 변수 대신 정적 값을 사용하여 시도했는데이 경우 쿼리가 성공합니다. 부적절한 구문을 사용하고 있습니까? 이 스레드는 문제를 해결하는 것으로 보이지만 구문은 같습니다. 문자열매개 변수가있는 동적 피벗 쿼리
ALTER PROCEDURE [dbo].[customFormReport]
(
@formid int
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(fieldname)
from FormResponse
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT FormID, FormSubmissionID,' + @cols + ' from
(
SELECT FormID, FormSubmissionID, fieldname, value
FROM FormResponse WHERE FormID = ' + @formid + '
) x
pivot
(
max(value)
for fieldname in (' + @cols + ')
) p '
execute(@query)
어떤 오류? 나는 그것이 int 일 때 + Convert (VarChar (8), @ formid)가 될 것으로 예상 했었지만 다른 것보다 내가 잘못한 것을 보지 않았다. –