我需要一些幫助。來自SELECT WHERE的SQL多個更新記錄
我想完全數量的材料在任何帳單中具有相同的ID。
這樣
bill no. 001
jellopy x1ea
jellopy x1ea
jellopy x1ea
zargon x1ea
結果應該是
bill no. 001
jellopy x3ea
zargon x1ea
所以,我想要做這樣的事情
1.select +總和2.更新3.刪除重複
這裏是我的老(dbill)表
dbill
id mat qty
01 A1 1
01 A1 1
01 A1 1
01 A2 1
id mat qty
[01 A1 1] < same mat&id = SUM it
[01 A1 1] < same mat&id = SUM it
[01 A1 1] < same mat&id = SUM it
01 A2 1
,這是SQLFiddle測試http://sqlfiddle.com/#!15/b30a3c用相同的材料
1 SUM量
SELECT mat,id,sum(qty) result
FROM dbill
GROUP BY id,mat
[2]得到導致這樣
id mat qty
01 A1 3
01 A2 1
[3]所以...我會更新這樣
UPDATE dbill
SET qty = result
FROM dbill t
INNER JOIN
(SELECT mat,id,sum(qty) result
FROM dbill
GROUP BY id,mat) s
ON s.id = t.id
AND s.mat = t.mat
的問題是,當我[3] UPDATE這裏是結果
id mat qty
01 A1 3
01 A1 3
01 A1 3
01 A2 3
,因爲正確的結果應該be
id mat qty
01 A1 3
01 A1 3
01 A1 3
01 A2 1 <
非常感謝您的理解和回答...
[從手動報價](https://www.postgresql.org/docs/current/static/sql-update.html):「*注意,目標表必須** **不出現在from_list *「 –