我有一个表,其中包含一个参考字段和一个id列。我需要做的是根据每个参考的ID的不同组合来计算金额。总共有九种不同的组合,然后我需要插入一个单独的表中。
我发现这样做的最好方法是使用游标并单独执行每个SUM,将数量分配给变量并更新每个引用和每个组合的表。
希望有道理!
我希望找到的是 - 有更好的方法吗?
感谢。
答案 0 :(得分:1)
你可以这样:
SELECT SUM(CASE WHEN (Id = 9) THEN Val ELSE 0 END) ConditionalSum
From dbo.Table
在一个查询中,您可以拥有许多具有不同条件的SUM。
答案 1 :(得分:1)
您可以创建一个名为combos
的表格,其中包含以下列:
(也许其他有用的列如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