SSRS - 在记录范围内获取分组总计

3

如果我解释不好,很抱歉——报告服务不是我的专业领域。我相信这应该是一个简单的问题(希望如此)。

我有一个非常简单的报告,其中我有一个名为“group1”的行组,然后在该组内,我只有一些记录(包括数字字段)。在“group1”标题中,我放置了数字字段记录的总和。现在我想要做的是计算每个数字字段作为该组总数的百分比。因此,例如,我当前有以下表格。

-----------------------------------------
- GROUP 1                    100     
-----------------------------------------
- Field 1 | sadasaadasdads | 10 | 10% <== This is what I am trying to calculate
-----------------------------------------
- Field 2 | sadasaadasdads | 20 | 20%
-----------------------------------------
- Field 3 | sadasaadasdads | 50 | 50%
-----------------------------------------
- Field 4 | sadasaadasdads | 20 | 20%
-----------------------------------------

我猜我应该能够创建一个表达式,但是我需要知道如何获取组的总计。任何有关如何计算百分比的帮助/指导都将不胜感激。

1个回答

3

对于您的数据集,这是您要查找的内容:

select field1, field2, value, 
       100.0 * value / SUM(value) OVER(PARTITION BY 1) 
                      /* the SUM gets the total for the whole dataset. If actually 
                         have groups, yous should do PARTITION BY GroupField 
                       */
from yourtable

现在,您只需要处理格式问题。

+1 这是正确的做法。但是你为什么要添加 OVER(PARTITION BY 1)?相比于 OVER(),是否有性能上的提升或只是为了澄清? - Lamak
你不能只用SUM(value),因为查询中没有分组。使用Partition by 1将得到所有值的总和,即对于所有行来说,1都是1。 - Adriano Carneiro
谢谢,我不确定使用SQL是否比报告工具更好。 - user460667
报告服务和报告工具的强项是像组摘要这样的计算。如果您想在包含3个嵌套组的报告中为每个组求和,您会在SQL中编写什么? - niktrs
递归CTE!但我同意有些东西应该保留在应用程序级别。 - Adriano Carneiro
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接