【问题标题】:SSRS Sum Values Based on Earliest Date基于最早日期的 SSRS 总和值
【发布时间】:2015-12-02 03:57:20
【问题描述】:

我正在尝试根据 SSRS 报告中的最早日期汇总净余额。在这种情况下,只有 2 个日期,但可以有更多的日期,不超过 7 天。

这是我的数据示例:

这是我想要得到的最早日期为 10/26/15:

我尝试了以下代码,但无法使其正常工作:

    =Sum(IIf(DateDiff("d",Fields!SettleFullDate.Value,today())>=7 
and DateDiff("d", Fields!SettleFullDate.Value, today())<7
and Fields!SETTLEBALANCE.Value>0), Fields!SETTLEBALANCE.Value, 0)

更新:我尝试了下面的代码,但报告中不断出现错误。难道是我需要将日期字段更改为整数?

提前感谢您的帮助!

【问题讨论】:

  • 为了清楚起见,您是否尝试将返回数据集中最早的日期与最新日期的总和相加?
  • 不,用户可以拉取报表查看历史数据。在这种情况下,他们可以将报告拉回几个月甚至几年。我刚刚注意到您为什么问这个问题,因为我在表达中使用了“今天()”。我该如何写表达式?

标签: reporting-services ssrs-2008 ssrs-2008-r2


【解决方案1】:

要比较两个日期的值之和,一组中的最大值和最小值,您可以使用以下等式

=Sum(iif(Fields!myDate.Value = Max(Fields!myDate.Value), Fields!myVal.Value, 0))
-Sum(iif(Fields!myDate.Value = MIN(Fields!myDate.Value), Fields!myVal.Value, 0))

这将数据集中所有匹配最大日期的值加在一起,并将所有匹配数据集中最小日期的值加在一起,并取一个。

无论您要求接收哪个日期,上述方法仅适用于您返回给 SSRS 的记录。因此,如果您有一个过滤器(WHERE 子句)来返回 Date1 和 Date2 之间的记录,这仍然适用 (注意 - 实际上不要在查询中使用“Between”)

除了使用此处列出的最大和最小日期之外,您还可以使用类似于您的原始方法来计算日期

dateadd("d", -7, Fields!MySpecificDate.Value)

并将其插入到上面的表达式中。

希望这是您需要的 - 如果不是,请告诉我。

【讨论】:

  • 我无法让这个表达式起作用。我得到的只是报告中的#Error。我更新了我的帖子。
  • 您能否通过将最大和最小日期拉出到自己的表达式中来检查它们是否正确计算。如果是这样,我会为每个 sumifs 做同样的事情。一般来说,试图将其分解以找出错误所在。计算本身看起来是正确的,但它可能取决于基础数据
  • 本身,最小/最大表达式只为所有日期拉回一个“真”值。 '=Fields!SettleFullDate.Value = max(Fields!SettleFullDate.Value)' 或 '=Fields!SettleFullDate.Value = min(Fields!SettleFullDate.Value)。此表达式不填充日期值。
  • 那是因为您正在执行比较。 =Max(fields!settlefulldate.value) 和相应的最小值相等。它们是您的最短和最长日期吗?
  • 我必须在我的 sql 查询中执行以下操作才能使其在 SSRS 中正常工作。 'groupdate = DATEADD(HOUR, DATEDIFF(HOUR, 0, SettleFullDate), 0) , minNetAmount = MIN(NetAmount) OVER (PARTITION BY acctnbr, setfulldate) , maxNetAmount = MAX(NetAmount) OVER (PARTITION BY acctnbr, solvefulldate) , sumNetAmount = SUM(NetAmount) OVER (PARTITION BY acctnbr,settfulldate),rn = ROW_NUMBER() OVER (PARTITION BY AcctNbr ORDER BY acctnbr,settfulldate)'....然后'DIFF = CTE.maxNetAmount - CTE.minNetAmount'。谢谢你的帮助。我会标记为已回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
相关资源
最近更新 更多