0

我有一个表,其中包含一个金额列、一个参考字段和一个 id 列。我需要做的是根据每个参考的不同 ID 组合来计算金额。总共有九种不同的组合,然后我需要将它们插入到单独的表中。

我发现做到这一点的最佳方法是使用游标并分别执行每个 SUM,将数量分配给变量并为每个引用和每个组合更新表。

希望这是有道理的!

我希望找出的是-有更好的方法吗?

谢谢。

4

2 回答 2

1

你可以这样:

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

您可以在一个查询中获得许多具有不同条件的 SUM。

于 2013-04-25T16:53:35.937 回答
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 回答