在下面的動態查詢我得到這個錯誤SQL服務器動態crosstb查詢與在參數
必須聲明標量變量「@κωδ_κατηγ2」
在@query
設置WHERE (κωδ_κατηγ = @κωδ_κατηγ2)
時。
如果設置WHERE (κωδ_κατηγ = 1)
工作正常。
我該如何解決這個錯誤?
如何將值從ControlParameter
@κωδ_κατηγ2傳遞到@query
?
<asp:SqlDataSource ID="apotelesmata_diast_db" runat="server"
ConnectionString='<%$ ConnectionStrings:epsa_mssql %>'
SelectCommand="DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX)
SELECT @cols = STUFF((SELECT ',' + QUOTENAME(Ομάδα1) FROM (SELECT κωδ_κατηγ, Ομάδα1 FROM [2014_2015].[αποτελεσματα_ερ2]) d
WHERE (κωδ_κατηγ = @κωδ_κατηγ1) GROUP BY κωδ_κατηγ, Ομάδα1 ORDER BY Ομάδα1 FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)') ,1,1,'')
SET @query = 'SELECT Ομάδα2,' + @cols + '
from
(select κωδ_κατηγ, Ομάδα1, Ομάδα2, Σκορ
from [2014_2015].[αποτελεσματα_ερ2] pd
WHERE (κωδ_κατηγ = @κωδ_κατηγ2)
GROUP BY κωδ_κατηγ, Ομάδα1, Ομάδα2, Σκορ) x
pivot
(max(Σκορ) for Ομάδα1 in (' + @cols + ')) p '
EXEC sp_executesql @query;">
<SelectParameters>
<asp:ControlParameter ControlID="katigoties_ddl"
PropertyName="SelectedValue" Name="κωδ_κατηγ1" Type="Int16">
</asp:ControlParameter>
<asp:ControlParameter ControlID="katigoties_ddl"
PropertyName="SelectedValue" Name="κωδ_κατηγ2" Type="Int16">
</asp:ControlParameter>
</SelectParameters>
</asp:SqlDataSource>
非常感謝我的朋友的作品完美 – lammis
大它幫助!請自由接受/ upvote幫助你的答案!祝你好運! – gofr1