SSRS - 在不知道行详细信息的情况下减去列值

时间:2013-08-09 14:43:22

标签: reporting-services ssrs-2008 reportingservices-2005

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

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

最近3个月的表总是返回3行,每个月1行。我想要做的是从第二个最早的月份中减去一个值,基本上它将始终是表格的第2行,当前月份表中的等效列。希望这是有道理的。

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

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

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

有一个月参数,因此Tables数据会根据月份而改变,但它总是我想要使用的第二行Value列。

这在SSRS中是否可行?

由于

2 个答案:

答案 0 :(得分: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: 如果您希望在Report Thisself中执行此操作,则可以使用ReportItems集合。

在方差文本框中输入值

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

HTH。

答案 1 :(得分:0)

您可以尝试使用LookupSet或MultilookupSet