MS SQL Server 2012 を使用しています
サブクエリを使用して資産の合計パーセントを表示する列を作成するクエリがあります。ただし、以下に示すように、ポートフォリオベースコードでグループ化するには、合計された列が必要です。
group by と Partition を試しましたが成功しませんでした。結果によってグループ化すると、ポートフォリオ コードは正しくグループ化されますが、summedpct はまだすべてのポートフォリオの合計であり、必要に応じて小計を計算していません。
パーティションを使用すると、次のエラーが発生します。トップ 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 の使用
クエリの間違った場所に group by または partition over を配置している可能性があります。summedpct 列を正しくグループ化する方法が必要です。
クエリは次のとおりです: https://dl.dropboxusercontent.com/u/29851290/cashpercent.sql
これが結果セットと目的の結果です。
実際の結果の問題は、すべての PercentAssets の合計を取得して summedpct に配置することです。
私が望む結果は、ポートフォリオベースコードによってグループ化されたアセットのこれらの割合です。目的の結果セットでは、chambetr の summedpct が 2.66、つまり -457.50+460.18 であることに注意してください。