declare @SP nvarchar(3)
SELECT HDR.SOPNUMBE, HDR.docdate, HDR.pymtrmid,
RTRIM(HDR.ShipToName) +
CASE WHEN HDR.ADDRESS1 <> '' THEN char(10) + RTRIM(HDR.ADDRESS1) ELSE '' END
FROM vSOPHdr HDR
WHERE HDR.SOPTYPE = 2 AND
(CASE WHEN HDR.SLPRSNID <> 'All'
then HDR.SLPRSNID in (''+@SP+'')
else HDR.SLPRSNID between '0' and 'ZZZZZZZZZZZZZZZ'
end)
上記のクエリを SQL クエリ アナライザで実行しようとしていますが、CASE 式 (IN、ELSE の近く) で「構文」エラーが発生します。何が間違っている可能性がありますか?
私がやりたいのは、レポート パラメーターで sales-personID が ALL として選択されている場合に、選択した営業担当者 ID のみをすべての営業担当者として処理したいということだけです。
私がやっていることについての単なる背景、
SSRS レポートのデータセット内に、上記のクエリ (CASE 条件なし) と同様のクエリがあります。
@SP はレポート パラメータであることに注意してください。