我有一份报告,我在SSRS中建立了一个报告,计算每个工作日的数字总和,可以追溯到10个工作日。每个工作日都有一个列组,每个项目的总计都有行组。计算总和的函数很简单:
=Sum(Fields!INCOME.Value)
这样可以返回数据:
现在我正在创建一份报告,指出日常数据的变化。我认为使用SSRS中的Previous()函数会很简单。所以我采用相同的数据集并在一个新的tablix中用原来的计算替换了:
=Sum(Fields!INCOME.Value)-Previous(Sum(Fields!INCOME.Value),"ASOFDT2")
列组称为ASOFDT2。除了第一列之外,这似乎适用于所有人,我得到以下结果:
我的问题是,有没有人知道为什么这个计算在第一组中没有执行,但其余部分是什么?我怎样才能正确计算出它的第一次迭代?出于提供信息的目的,我正在使用SQL Server 2014,我正在Visual Studio 2013中构建报告。
我还审核了SO问题:Use of Previous() function in reverse date sorted data in SSRS?虽然我不确定如何将此问题应用于我的问题。第一列是我最近的一组数据,我不能选择一个更新的列,只是隐藏它。
答案 0 :(得分:1)
Previous()函数获取Previous列中的数据。它对该数据的含义没有任何了解,因此如果您的列按降序排列,则上一列将是下一天,而不是前一天
将差异数据包含在数据集中而不是尝试在报告中计算它应该不会太难。只需在YourDateColumn = DATEADD(dd, -1, YourDateColumn)
上加入表格,联接的右侧将包含前一天的数据,您可以减去差异。