【问题标题】:Can I use WHERE clause in an SSRS expression?我可以在 SSRS 表达式中使用 WHERE 子句吗?
【发布时间】:2020-02-20 21:23:22
【问题描述】:

我在WHERE clause in SSRS expression 上看到了帖子。我也在尝试做一个 where 子句,但以不同的方式。当 ItemId = 4 时,我需要显示 ItemDesc。我设置了一个参数,以便该单元格始终等于 4。现在我只需要匹配的描述字段。我无法对其进行硬编码,因为描述可能有一天会改变。有没有办法关联这两个字段?

=IIF(Parameters!ItemID_4.Value = 4, Fields!ItemDesc.Value,"")

我正在从 Crystal Reports 转换为 SSRS。第一个图像是 CR 的输出。我只需要在左上角的单元格中显示 ItemDesc。

下一张图片来自 SSRS。它不限制描述。它似乎在做我的表情所说的。 ItemID = 4,因此显示所有 ItemDesc 值,但现在这两个字段没有关联。我需要它只显示匹配值。

感谢您的帮助。

【问题讨论】:

  • 不清楚你在问什么。你发布的表情会做你说你想做的事吗?究竟是什么问题?显示示例数据和预期结果,以及您目前拥有的数据,人们将能够为您提供帮助。
  • 如果要过滤 ItemID 为 4,请在 SQL 中添加 WHERE 子句,如WHERE ItemID = @ItemID。然后将该参数映射到数据集属性的参数选项卡中的 SSRS 参数。那么当你在参数中选择 4 时,只会显示 4 的 ItemID。

标签: reporting-services where-clause


【解决方案1】:

我无法对其进行硬编码,因为描述可能有一天会改变。

无论如何,您都在尝试以这种方式对参数进行硬编码。我不认为你需要一个参数来获得结果,除非你被限制调整数据集查询。

如果您对数据集使用嵌入式 SQL 查询,我会在 WHERE 子句中放置一个过滤器:WHERE ItemID = 4

如果您无法调整查询,另一种方法是转到报告数据视图 > 右键单击​​表的数据集,“数据集属性” > 转到“过滤器”选项卡并添加具有以下设置的过滤器: Expression = ItemID, Operator = "=", Value = "4"(如果您想保留参数,则为“@ItemID”)。

【讨论】:

    猜你喜欢
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2017-05-07
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多