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 是一个报告参数。