0

有一个关于 SSRS 的问题。使用 2005 版本。

我的报告中有 2 个表格,一个包含当前月份的数据,另一个包含过去 3 个月的数据。

最后 3 个月表总是返回 3 行,每个月 1 行。我想要做的是从第 2 个最旧的月份中减去一个值,基本上它始终是表的第 2 行,与当前月份表中的等效列相同。希望这种方式有意义。

我将在这里举一个例子;
表 1
月值 Var
8 月 5 日?

表 2
月值
7 月 4
日 6 月 7
日 5 月 10 日

我想使用表 1 中的值并减去表 2 中 June 列的值,因此 5 - 7,返回值 -2。

有一个月份参数,因此表格数据会根据月份而变化,但它始终是我要使用的第二行值列。

这在SSRS中可能吗?

谢谢

4

2 回答 2

1

方法1: 最好在SQL(数据集)中解决这个问题,然后在报表设计中解决。

如果数据来自两个不同的表,那么

Select C.Month, C.Value, (C.Value - L.Value) AS Var
From CurrentMonthData C 
Left JOIN (Select * Last3MonthData where Month = CurrentMonth - 2) L
ON 1=1

如果数据来自同一张表

Select C.Month, C.Value, (C.Value - L.Value) AS Var
From (Select * MonthData Where Month = @CurrentMonth) C 
Left JOIN (Select * MonthData where Month = @CurrentMonth - 2) L
ON 1=1

方法 2: 如果您更喜欢在报告本身中执行此操作,您可以使用 ReportItems 集合。

在方差文本框中输入值

=ReportItems!CurrentMonthValueTextBox.Value - ReportItems!Prev2MonthValueTextBox.Value

HTH。

于 2013-08-09T18:55:48.380 回答
0

您可以尝试使用 LookupSet 或 MultilookupSet

于 2013-08-09T17:44:53.780 回答