gpt4 book ai didi

reportingservices-2005 - 分组不同值的总和

转载 作者:行者123 更新时间:2023-12-04 17:26:48 25 4
gpt4 key购买 nike

这有点难以用语言解释......我正在尝试计算矩阵中分组不同值的总和。假设我有以下 SQL 查询返回的数据:

------------------------------------------------
| Group | ParentID | ChildID | ParentProdCount |
| A | 1 | 1 | 2 |
| A | 1 | 2 | 2 |
| A | 1 | 3 | 2 |
| A | 1 | 4 | 2 |
| A | 2 | 5 | 3 |
| A | 2 | 6 | 3 |
| A | 2 | 7 | 3 |
| A | 2 | 8 | 3 |
| B | 3 | 9 | 1 |
| B | 3 | 10 | 1 |
| B | 3 | 11 | 1 |
------------------------------------------------

查询中还有一些其他数据,但这无关紧要。 ParentProdCount 特定于 ParentID。

现在,我在 MS 报表设计器中有一个矩阵,我试图在其中计算 ParentProdCount(按“组”分组)的总和。如果我只是添加表达式
=Sum(Fields!ParentProdCount.Value)

我得到 A 组的结果 20 和 B 组的结果 3,这是不正确的。 A 组的正确值应该是 5,B 组的正确值应该是 1。如果不涉及 ChildID 就不会发生这种情况,但我必须在同一矩阵中使用其他一些特定于 child 的数据。

我试图嵌套 FIRST() 和 SUM() 聚合函数,但显然不可能有嵌套的聚合函数,即使它们定义了范围。

我很确定有某种方法可以计算分组的不同总和,而无需创建另一个 SQL 查询。任何人都知道如何做到这一点?

最佳答案

好的,我通过在我的 SQL 查询中添加一个 ROW_NUMBER() 函数来解决这个问题:

SELECT Group, ParentID, ROW_NUMBER() OVER (PARTITION BY ParentID ORDER BY ChildID ASC) AS Position, ChildID, ParentProdCount FROM Table

然后我将 SSRS SUM 函数替换为
=SUM(IIF(Position = 1, ParentProdCount.Value, 0))

关于reportingservices-2005 - 分组不同值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7877112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com