簡體   English   中英

SQL-如何使用具有相同成員 ID 的多行一次性內連接更新數量(總和)

[英]SQL- How to update amount(sum) with one time inner join with the multiple row with the same member id

我計划用具有相同成員 ID 的第 3 行更新金額。

這就是我所做的

DECLARE @UpdatedWagerItem TABLE (MemberID bigint, CompanyID int, amount decimal )
INSERT INTO @UpdatedWagerItem VALUES (3,1,2);

DECLARE @UpdatedWagerItem2 TABLE (MemberID bigint, CompanyID int, amount decimal )
INSERT INTO @UpdatedWagerItem2 VALUES (3,1,5);
INSERT INTO @UpdatedWagerItem2 VALUES (3,1,5);
INSERT INTO @UpdatedWagerItem2 VALUES (3,1,5);

UPDATE m
SET
    m.amount = m.amount + u.amount
FROM @UpdatedWagerItem m 
    INNER JOIN @UpdatedWagerItem2 u 
    ON m.MemberID = u.MemberID and m.CompanyID = u.CompanyID

SELECT * FROM @UpdatedWagerItem

sql

第 2 行和第 3 行不起作用。 如何一鍵更新余額?

您需要在第二張表上按功能分組才能先匯總金額。

UPDATE m
SET
    m.amount = m.amount + u.amount
FROM @UpdatedWagerItem m 
INNER JOIN (SELECT MemberID,CompanyID,SUM(amount) amount
FROM @UpdatedWagerItem2 
GROUP BY MemberID,CompanyID
) u ON m.MemberID = u.MemberID and m.CompanyID = u.CompanyID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM