我有一个矩阵设置,其中一个名为“company”的Row Group,一个名为“Year”的列组和一个值字段,该值字段是收入年份的费用总和。列组最终将有2列通过用户输入提供。最终结果是一个看起来像这样的矩阵:
openFile()
我想要做的是在矩阵中添加一列来计算从第1年到第2年的变化。有没有办法在矩阵中执行此操作,例如添加一个新列,其中的表达式比较2行中的条目或我是否需要操作SQL代码来创建在代码中执行此操作的列?为此,这里是数据集代码的视图,如果这是我需要的方式:
Year 1 | Year 2
Company: $500 $250
Company2: $750 $250
答案 0 :(得分:1)
尝试在标题类型Change
中添加一个年级组之外的列,或者在下面的单元格中使用此表达式添加您要放置的内容:
=Sum(iif(Max(Fields!DeliveryYear.Value)=Fields!DeliveryYear.Value,Fields!Revenue.Value,0))-
Sum(iif(Min(Fields!DeliveryYear.Value)=Fields!DeliveryYear.Value,Fields!Revenue.Value,0))
注意我将 min 年(1)收入总和减去 max 年(2)收入总和。
在你的例子中,它将产生:
+-----------+--------+--------+--------+
| Company | Year 1 | Year 2 | Change |
+-----------+--------+--------+--------+
| Company A | 500 | 250 | -250 |
+-----------+--------+--------+--------+
您可以通过多种方式定义更改,可能是百分比或任何其他度量,这只是一个示例,了解上述表达式正在做什么,以便计算您需要的度量。
编辑1:
使用此数据排列添加矩阵。
矩阵在预览中看起来像这样:
请确保在DeliveryYear组外添加了Change列,如上图所示。还要检查表达式中与您的字段名称相对应的字段名称。
编辑2:
如果Revenue具有空值,您可以尝试:
尝试使用T-SQL ISNULL()
函数替换查询级别的空值,在此部分更改您的查询,如下所示
,ISNULL(ChargeDetails.Revenue,0)
但是,如果DeliveryYear具有空值,您可能希望忽略该记录,因此请尝试在where子句中将其排除。
如果您需要进一步的帮助,请告诉我。
答案 1 :(得分:0)
我最终使用以下内容作为更改列中的表达式。
=sum(iif(Fields!Delivery_Year.Value=Parameters!DeliveryYear.Value,1,0)*Fields!Revenue.Value) - sum(iif(Fields!Delivery_Year.Value=Parameters!ComparisonYear2.Value,1,0)* Fields!Revenue.Value)