0

我有两张桌子:

-Card
id
points

-History
CardId
points

现在我想执行更新查询,根据历史中具有相同 cardId 的点减去 Card 表中的点

例如我有行:

-card
1 10
2 30

-History
1 5
1 3
2 10 
2 9

因此,我应该在 Card 表行中有:

-card
1 2
2 11

最好的方法是什么?

4

1 回答 1

1

这会做到的。

update card
set points = points - total
from card
    inner join (select cardid, sum(points) as total from history) v 
    on card.id = v.cardid

但我同意其他质疑您的数据库结构的评论

于 2012-09-18T18:36:59.383 回答