Reporting Services - 计算表中的行总数/百分比

时间:2011-07-18 15:29:25

标签: sql-server reporting-services

我正在尝试计算每一行的总数以及整体总数的百分比。

现在我有一张这样的表:

Blah    Col1    Col2    Col3
-----------------------------
ABC      1        1      1
DEF      2        2      3
-----------------------------
Total    3        3      4

我希望它包括总数/百分比,如此:

Blah    Col1    Col2    Col3    Total    %
--------------------------------------------
ABC      1        1      1        3     30%
DEF      2        2      3        7     70%
--------------------------------------------
Total    3        3      4        10    100%

我知道我可以在SQL查询中进行计算,但存储过程相当复杂,所以我想尽可能避免这种情况。所以我想知道在SSRS中是否有一种简单的方法可以实现这一点。

现在我只为每个Blah设置一个行组,用于计算列总数。

5 个答案:

答案 0 :(得分:11)

我为我的矩阵添加了一个Totals Row,然后我引用了该列的总计文本框(在我的情况下是文本框8),我做了:

Sum(Fields.FieldName.Value)/ReportItems!Textbox8.Value

我希望这是有道理的!

答案 1 :(得分:5)

要计算总数,只需使用+运算符进行简单求和即可。对于百分比,您可以使用ReportItems!ItemName来引用总计。

答案 2 :(得分:1)

您可以在Reporting Services中使用聚合函数,例如“SUM”和“AVG”来实现您要执行的操作。它的工作方式是SSRS表中“细节”组的部分将列出所有数据,而组的非细节部分(如页眉和页脚)可用于聚合,如:

=SUM(Fields!TestValue.Value)

http://msdn.microsoft.com/en-us/library/ms159134%28v=sql.90%29.aspx

如果您需要更多帮助,请与我们联系。

答案 3 :(得分:0)

创建两个组,一个在列上,每个行的数据相同,然后在列blah上创建一个。为emracassing组添加一行并在那里进行总结。

答案 4 :(得分:0)

您可以按照以下方式执行操作: 总和(CINT(领域!TestValue.Value))  或者总和(CInt(Fields!DollarAmountOfCheck.Value),“DataSet1”) 有时当数据通过WCF时,它不接受Sum()函数。但在这种情况下,这种方法很好。