查找列组中列之间的差异

时间:2019-02-03 12:12:01

标签: sql-server reporting-services ssrs-2012 reportbuilder

我正在使用报告生成器来创建显示项目预算的报告。数据集包括预算和预计的订单项。请参阅下面的示例行。我正在使用具有列组的矩阵来显示预算和并排投影,并使用行组来显示节,类别等。我需要有一个从预算中减去预测的差异列。

我已经在互连网上搜寻了解决方案,但到目前为止没有任何工作。我觉得必须有一个简单的解决方案,因为这可以在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查询中做所有事情,而不使用列组。这是100%最简单的解决方案。我很惊讶,没有简单的方法可以引用列组中的各个列。以下内容可能对其他人有用,但是我无法让他们为我工作。不知道为什么。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您可以在“类型”组内添加其他列(前提是这是您的列组的名称)。设置 Column Visibility (列可见性)以类似

的表达式隐藏列
= IsNothing(Previous(Field!Type.Value, “Type”)

将该列的值计算为

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

这应该计算先前类型和当前类型的值之间的差,并且 仅显示“预计”类型的列(当以前的类型时)。