SSRS如何将列与组中的第一列进行比较

时间:2013-10-18 23:29:41

标签: sql reporting-services ssrs-2008 ssrs-grouping

我正在尝试创建看起来应该是一个非常简单的矩阵报告,我希望有人可以提供帮助。我有返回销售区域,日期和销售额的数据集。要求是将各个时间段的销售额与当前日期进行比较。我希望我的矩阵看起来像这样:

   CurrentSales    Date2Sales  CurrentVSDate2    Date3Sales   CurrentVSDate3 
1   1000           1500        -500              800           200
2   1200           1000         200              900           300
3   1500           1100         400              1400          100

我可以从一列到下一列获得差异,但我需要所有列来引用CurrentSales列。任何帮助将不胜感激。

目前,我的数据集包含了日期,地区,产品和销售额。然后我有三个参数,CurrentDate,PreviousMonth,PreviousQuarter。区域和产品是我的行组,日期是列组。接下来,我在组中添加了一个列,其中包含以下表达式:=Sum(Fields!SalesAmount.Value)-Previous(Sum(Fields!SalesAmount.Value),"BookingDate").我知道这不正确,因为它将值与列组中的上一个日期进行比较,我需要比较到第一个日期列组。

2 个答案:

答案 0 :(得分:1)

示例:

使用表达式,您可以:

= iif(Sum(Fields!SalesAmount.Value)= Previous(Sum(Fields!Date2Sales.Value)),

= iif(Sum(Fields!EndBalance.Value)= 0,Nothing,Sum(Fields!EndBalance.Value))你也可以使用Switch。

答案 1 :(得分:0)

获得此结果的最简单方法可能是在您的查询中。为返回的每一行添加一个字段,可能称为“当前销售额”。在那里使用相关子查询来获得正确的比较值。然后,您的比较可以像=Fields!Sales.Value - Fields!CurrentSales.Value或类似的那样简单。

在报告级别有一些方法可以做到这一点,但它们更令人痛苦:我目前最喜欢的是使用嵌入在报告中的自定义代码。另一种方法是使用聚合聚合。