【问题标题】:SSRS 2008 parameter dates and nullsSSRS 2008 参数日期和空值
【发布时间】:2016-03-13 07:37:10
【问题描述】:

我有一份希望在 SSRS 中运行的客户报告。我要返回的报告是针对特定时期的(例如 01/01/2016 和 29/02/2016)。该参数针对日期字段 (End_Date)。

我想返回的是客户列表,其中 End_Date 介于上述日期(或任何其他时间段)之间,并且 End_Date 也为空。

我能够创建一个参数,该参数将列出我想要的日期之间的 End_Date 客户,但我如何也让该参数也列出 NULL 值。

希望这很清楚,但以防万一 - 我需要 End_Date 介于两个日期或 NULL 之间的客户列表。

谢谢

【问题讨论】:

  • 如果你分享你的sql会更容易帮助。

标签: reporting-services ssrs-2008


【解决方案1】:

您需要在评估中使用 END_DATE 的 OR 来考虑出现空值的可能性。

您是在查询中还是在数据集上使用参数? SQL 与 SSRS 表达式有点不同。

SQL

WHERE DATE_FIELD >= @START_DATE AND (DATE_FIELD <= @END_DATE OR @END_DATE IS NULL)

SSRS

=IIF(Fields!DATE_FIELD.Value >= Parameters!START_DATE.Value AND (Fields!DATE_FIELD.Value <= Parameters!END_DATE.Value OR ISNOTHING(Parameters!END_DATE.Value), 1, 0)

在其他过滤器属性中,将类型设置为 Integer,将 Operator 设置为 =,将 Value 设置为 1

这将评估表达式,如果匹配则返回 1,如果不匹配则返回 0 - 然后过滤 1。

【讨论】:

  • 感谢您的支持。它不喜欢NULL,说它不受支持。但我不能使用 DBNULL 作为它的表达式。
  • 当然,Nothing,被用来代替,这似乎工作。再次感谢。如果没有您的意见,永远不会得到这个。
  • 哦 - 呃。是的 - ISNOTHING 而不是 SSRS 中的 NULL。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
  • 1970-01-01
相关资源
最近更新 更多