【发布时间】:2012-04-23 10:35:54
【问题描述】:
这些是我的桌子:
-
会员:
Id, Points -
购物车注册:
Id, Member_Id, CartId, RegisterDate, Point -
SelectetMembers:
Id, Member_Id
会员可以在CartRegister 和Member.Points 注册购物车,会员获得的所有积分必须计算并插入。所以我需要计算每个SelectedMembers 的所有点并更新Member 表,但我不知道如何实现它。
以下脚本在我脑海中:
UPDATE [Member]
SET [Points]=
(
SELECT SUM([CR].[Point]) AS [AllPoints]
FROM [CartRegister] AS [CR]
WHERE [CR].[Member_Id] = --???
)
WHERE [Members].[Member].[Id] IN ( SELECT Member_Id From SelectedMembers )
所以我很困惑Select Sum(Point) 中的 where 子句是什么,如果我使用
WHERE [CR].[Member_Id] IN ( Select Member_Id From SelectedMembers )
那么所有会员的总和与所有会员积分的总和相同,也许我需要foreach之类的东西你有什么建议?
【问题讨论】:
-
我认为应该是
WHERE [CR].[Member_Id] = [Member].Id。 -
@NikolaMarkovinović 谢谢你的答案是正确的,你能把它写成答案吗,我可以接受。
标签: sql sql-server sql-server-2008 tsql sql-scripts