开发者社区> 问答> 正文

如何使用内部联接为每个重复值计算?

我在表中创建了新列,并编写了一个内部联接函数,该函数用值填充该列。但是现在我发现,我需要为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循环,我需要有关该任务的帮助。我如何实现我的目标?

展开
收起
祖安文状元 2020-01-03 16:02:40 497 0
1 条回答
写回答
取消 提交回答
  • 在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;
    
    2020-01-03 16:02:56
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
用计算和数据去改变整个世界 立即下载
重新定义计算的边界 立即下载
RowKey与索引设计:技巧与案例分析 立即下载