【问题标题】:Select statement with Condition and SSRS parameters带有 Condition 和 SSRS 参数的 Select 语句
【发布时间】:2021-06-17 03:34:49
【问题描述】:

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

在 SSRS 中,我有一个名为 Block 的 @Parameter,其值如下:块 A、块 B 和块 C。用户将选择日期范围,然后选择块值。

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

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

所以当用户使用以下参数运行报表时:

开始日期:05/01/2021 结束日期:05/07/2021 块:A

输出应该是这样的

Emp Name Emp Id
Jim 123
Mary 456

这可能吗?

【问题讨论】:

  • @Block 是什么?逗号分隔的varchar?那你需要拆分字符串,你有哪个版本的SQL Server?

标签: sql sql-server ssrs-2008 ssrs-2012 ssrs-2008-r2


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    相关资源
    最近更新 更多