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