首页 > 解决方案 > 如何将 WHERE 子句中的这个 CASE 语句变成多选参数?

问题描述

当我将其制作成报告时,我需要能够选择所有 3 个。我知道第 3 个选项有点傻,但客户希望能够单击所有 3 个。

AND CASE WHEN @Display IN (1) AND (POPGT.LimitedQty >= 1 OR POPDX.LimitedQty >= 1) THEN 1
     WHEN @Display IN (2) AND (POPGT.NewSingleOrderQty >= 1 OR POPDX.NewSingleOrderQty >= 1) THEN 1
     WHEN @Display IN (0) THEN 1 END = 1

标签: sqlreporting-servicesparameters

解决方案


不要使用case表达式。像这样的东西:

(@Display IN ('1', '*') AND (POPGT.LimitedQty >= 1 OR POPDX.LimitedQty >= 1)) OR
(@Display IN ('2', '*') AND (POPGT.NewSingleOrderQty >= 1 OR POPDX.NewSingleOrderQty >= 1)) OR
(@Display IN ('0', '*'))

推荐阅读