所以这就是事情:
我有一张名为Reward的表:
CustomerID OrderID OrderRewardPoints ExpireDate
#1 1 55 2014-09-26#
#1 2 145 2014-09-27#
#2 3 70 2014-09-27#
我想添加一个RewardPoints列,它由所有不同的CustomerID计算,以及它们有多少OrderRewardPoints。
与CustomerID 1一样,他有两个OrderRewardPoints,因此他的新列是200。
通过使用select我可以得到结果,但我只是不知道如何添加为新列。
SELECT SUM (OrderRewardPoints) AS RewardPoints
FROM TABLE
GROUP BY CustomerID
答案 0 :(得分:1)
添加列:
alter table reward
add rewardpoints int;
填充列:
update reward t
set rewardpoints =
(select sum(x.orderrewardpoints)
from reward x
where x.customerid = t.customerid);
通过创建一个显示每个客户的总奖励积分的视图,而不是在奖励表中实际添加一列,这可能需要更新。
要做到这一点,你可以运行:
create view rewardtotals_vw as
select customerid, sum(orderrewardpoints) as rewardpoints
from reward
group by customerid