1

我正在处理带有列分组的 ssrs 报告。以下是我的场景。

矩阵 1:

ID     2012  2013
1      20    40
1      30    50

Total  50    90

矩阵 2:

ID     2012  2013
1      60    70
1      60    80

Total  120   150

我需要 matrix1 和 matrix2 的总和,如下所示:

ID     2012  2013
1      170   240

但我得到的结果如下:

ID     2012  2013
1      410   410

我在所有 3 个矩阵中应用了列分组,并给出了获取矩阵 3 总和的表达式:=Sum(Fields!amount1.Value, "dsmatrix1") + Sum(Fields!Tamount1.Value, "dsmatrix2")

请帮我解决这个问题。

谢谢!

4

1 回答 1

0

我想我知道发生了什么。如我错了请纠正我。

根据我所看到的,我猜测 Matrix 1 和 Matrix 2 每个只有三个字段,一个 ID 字段、一个金额字段(即“amount1”或“Tamount1”)和一个年份字段。

您的列分组正在操纵数据的显示以显示按年份划分的所有值。这在查看单个数据集中的数据时效果很好。但是,您的公式指定应添加 dsmatrix1 的 Amount1 字段和 dsmatrix2 的 Tamount1 字段中所有内容的总和。这不考虑列分组。您的表达式本质上是从两个数据集中获取所有值并将它们加在一起。

不了解您的查询结构或数据如何过滤的更多信息,我最好的猜测是您需要另一个 SQL 数据集。在这种情况下,您将从之前的两个数据集中获取查询,并使用“Union All”命令将它们合并。请注意,您将要使用 Union All 而不仅仅是 Union。更多信息:UNION 和 UNION ALL 有什么区别?

您的最终结果应如下所示:

--This will be your dsmatrix1 query copied and pasted
Select ...

Union All

--This will be your dsmatrix2 query copied and pasted
Select ...

--Place one single Order by clause at the bottom
Order by ...

注意:要正确合并两个查询,您需要确保每个查询具有相同数量的字段,每个具有相同的数据类型。然后你可以将你的第三个矩阵指向新的数据集。

希望有帮助!

于 2013-11-06T17:30:36.183 回答