0

金額列、参照フィールド、および id 列を持つテーブルがあります。私がする必要があるのは、各参照の ID のさまざまな組み合わせに基づいて金額を合計することです。別のテーブルに挿入する必要がある合計 9 つの異なる組み合わせがあります。

これを行うために私が見つけた最良の方法は、カーソルを使用して各 SUM を個別に実行し、金額を変数に割り当て、参照ごとおよび組み合わせごとにテーブルを更新することです。

それが理にかなっていることを願っています!

私が知りたいと思っていたのは、それを行うためのより良い方法はありますか?

ありがとう。

4

2 に答える 2

1

combos次の列を使用して、次のような名前のテーブルを作成できます。

  • 組合せ名
  • 参照 ID の組み合わせ

(ID や作成時間などの他の有用な列もあるかもしれませんが、ここでは重要ではありません)。

次のように、組み合わせをこの表に挿入します。

First10     1
First10     2
...
First10     10
MyFavorite  42

ペアはどうでもいい。

次に、単一のクエリで必要なことを実行できます。

select c.comboName, sum(val) as ConditionalSum
from t join
     combos c
     on t.referenceId = c.referenceId
group by c.comboName
于 2013-04-25T18:44:53.430 に答える
1

次のようなことができます。

SELECT SUM(CASE WHEN (Id = 9) THEN Val ELSE 0 END) ConditionalSum
  From dbo.Table

1 つのクエリで、条件が異なる多数の SUM を使用できます。

于 2013-04-25T16:53:35.937 に答える