我在表中创建了新列,并编写了一个内部联接函数,该函数用值填充该列。但是现在我发现,我需要为NUMBER表中的每个重复项增加该值CART。
ALTER TABLE [HEADERS] ADD [SUM] [DECIMAL]
GO
UPDATE [HEADERS]
SET [HEADERS].[SUM] = [CART].[AMOUNT]*[CART].[PRICE]
FROM [HEADERS]
INNER JOIN [CART]
ON [HEADERS].[NUMBER] = [CART].[NUMBER]
GO
列在中NUMBER是唯一的,HEADERS但不是唯一的,并且在中重复CART。
所以,我需要的是计算[CART].[AMOUNT]*[CART].[PRICE]每个相同NUMBER的CART,这个总结,然后在这个值填入表中的合适的诗句HEADERS-哪里[HEADERS].[NUMBER] = [CART].[NUMBER]。
我不太擅长数据库,但是我知道没有foreach循环,我需要有关该任务的帮助。我如何实现我的目标?
在JOIN:之前使用聚合:
UPDATE h
SET h.[SUM] = c.total
FROM HEADERS h JOIN
(SELECT c.NUMBER, SUM(C.AMOUNT * C.PRICE) as total
FROM CART c
GROUP BY c.NUMBER
) c
ON c.NUMBER = h.NUMBER;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。