我正在使用 MS SQL Server 2012
我有一个查询,它使用子查询来创建一个显示总资产百分比的列。但是,我需要该总和列按portfoliobasecode 分组,如下所示。
我试过 group by 和 Partition 没有成功。使用 Group by 结果是投资组合代码正确分组,但 summedpct 仍然是所有投资组合的总和,而不是我想要的小计。
使用分区我收到以下错误。我可以使用 Top 1 但这并没有给出预期的结果。
错误
Msg 512, Level 16, State 1, Line 17
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
使用 TOP 1
可能是我将分组或分区放在查询中的错误位置。我需要一种方法来正确地对列 summedpct 进行分组。
这是查询: https ://dl.dropboxusercontent.com/u/29851290/cashpercent.sql
这是结果集和期望的结果。
实际结果的问题是它取所有 PercentAssets 的总和并将它们放在 summedpct 中。
我想要的结果是这些按投资组合基础代码分组的资产百分比。请注意,在所需的结果集中,chambetr 的 summedpct 为 2.66,即 -457.50+460.18