1

次のクエリでは、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)
4

1 に答える 1

0

それを文字列に変換し、

CAST(@formid AS VARCHAR(25))
于 2013-05-29T13:13:02.393 に答える