UPDATE
TABLE_1
SET
COL_1 = (
SELECT
SUM(TOT)
FROM
TABLE_2
)
WHERE
CUST_NO = TABLE_2.CUST_NO
所以,到目前为止,这是我的SQL。基本上,我试图将TABLE_1中的COL_1更新为TABLE_2中存储的TOT的总和。我试图从两个表中的CUST_NO上更新它。
我知道我的代码根本不起作用,但我真的不知道如何做到这一点。
因此,在运行SQL之前,TABLE_1中的一行示例将是:
|CUST_NO |COL_1|
|1000 |null |
|1001 |null |
和TABLE_2:
|CUST_NO |TOT |
|1000 |15 |
|1000 |17 |
|1001 |13 |
|1001 |12 |
我最终想要/需要的是什么:
TABLE_1:
|CUST_NO |COL_1|
|1000 |32 |
|1001 |25 |
答案 0 :(得分:3)
这可能是你想要的:
UPDATE TABLE_1
SET COL_1 = (SELECT SUM(TOT)
FROM TABLE_2
WHERE table_1.CUST_NO = TABLE_2.CUST_NO
)
这假设您要更改所有行。否则,试试这个:
UPDATE TABLE_1
SET COL_1 = (SELECT SUM(TOT)
FROM TABLE_2
WHERE table_1.CUST_NO = TABLE_2.CUST_NO
)
where exists (select 1 from table_2 WHERE table_1.CUST_NO = TABLE_2.CUST_NO)
仅更改table1中客户编号位于表2中的行。
根据数据库的不同,可能还有其他方式来表达这一点。但是,此语法应适用于大多数数据库。