选择带有Condition和SSRS参数的语句



我有一个查询的情况,如下所示。

在SSRS中,我有一个名为Block的@参数,其值如下:Block a、Block B和Block C。用户将选择Date range,然后选择Block Value。

输出本质上是一个显示名称的资格系统:主要查询如下:

Select EmpName, EmpID from EmpDtls where EmpassignID in (@Block)

现在我想做的事情如下:

当用户选择块时:查询应基于查询验证参数。有可能做这样的事情吗:

select Case
when (@Block) = A then (select Personnel_level from Block where PersnelQual = 'A', 'B')
when (@block) = C then (select Personnel_level from Block where PersnelQual = 'B', 'C')
END
from PersnelQual

因此,当用户使用以下参数运行报告时:

开始日期:2021年1月5日结束日期:2021年7月5日块:

输出应该类似于这个

Emp名称Emp Id
Jim123
玛丽456

不需要case。只需将条件放在WHERE子句中即可:

select Personnel_level
from Block
where (@Block = A and PersnelQual in ('A', 'B')) or
(@block = C and PersnelQual in ('B', 'C'));

相关内容

  • 没有找到相关文章

最新更新