查找列组中列之间的差异

问题描述 投票:2回答:2

我正在使用报表生成器创建一个显示项目预算的报表。数据集包括预算和预测的行项目。请参阅下面的示例行。我正在使用带有列组的矩阵来显示预算并且并排投影以及显示部分,类别等的行组。我需要有一个从预算中减去预测的方差列。

我已经搜索了互联网的解决方案,但到目前为止还没有任何工作。我觉得必须有一个简单的解决方案,因为它可以在sql查询中完成,而不费力。大多数解决方案假设我有两个单独的字段,但这些是与列组一起拉出的动态字段。

Dataset Row Samples
Type      Section  Cateogry Phase            Task             Total
Budget    Building Kitchen  Pre-Construction Cabinet Hardware $100 
Projected Building Kitchen  Pre-Construction Cabinet Hardware $220 

Report sample


           COL GROUP        This is the column i want
           Budget Projected Variance
+Buidling  $100   $220      -$120
+Kitchen  
+Pre-Con

编辑:我尝试了下面的解决方案没有成功,并已访问第二个答案中提供的每个链接。也许有一些我缺少的东西,但我最终只是在SQL查询中执行所有操作而不使用Column组。这是100%最简单的解决方案。我很惊讶没有简单的方法来引用列组中的各个列。以下可能适用于其他人,但我无法让他们为我工作。不知道为什么。

sql-server reporting-services ssrs-2012 reportbuilder
2个回答
1
投票

在矩阵上,您可以使用组小计来实现此目的,您只需要使用减去值的表达式覆盖SUM操作。有很多链接提到如何做或那可以帮助您:


1
投票

您可以在“类型”组中添加其他列(前提是这是列组的名称)。设置列可见性以通过类似表达式隐藏列

= IsNothing(Previous(Field!Type.Value, “Type”)

计算该列的值为

= Previous(Sum(Fields!Total.Value), “Type”) – Sum(Fields!Total.Value)

这应该计算前一个类型和当前类型的值之间的差异,并且仅显示“Projected”类型的列(当存在先前类型时)。

© www.soinside.com 2019 - 2024. All rights reserved.