iT邦幫忙

1

SQL Update Statement with Join Condition

pcw 2018-06-26 13:51:31476 瀏覽

我的ACCESS有一個table1如下:

product employee number
A 20
A 40
A 60
B 10
B 20

我想寫一個UPDATE statement,

針對

(SELECT product FROM table1 WHERE employee = 'A') AS A
INNER JOIN
(SELECT product FROM table1 WHERE employee = 'B') AS B
ON A.product = B.product

的部分(也就是product 甲product 乙)

員工 A所做的product 甲的number要減去員工 B所做的product 甲的number
員工 A所做的product 乙的number要減去員工 B所做的product 乙的number

最後table1會變成:

product employee number
A 10
A 20
A 60
B 10
B 20

1 個回答

4
slime
iT邦大師 1 級 ‧ 2018-06-26 14:51:32
最佳解答
update table1 r
inner join ( select product , employee , number from table1 where employee = 'B' ) b
on r.product = b.product
set r.number = r.number - b.number
where r.employee = 'A'
slime iT邦大師 1 級 ‧ 2018-06-26 14:52:10 檢舉

留意執行次數以免重複扣....

pcw iT邦研究生 4 級 ‧ 2018-06-26 15:58:52 檢舉

感謝slime,如果join改成inner join就可以了。
請幫忙改一下,我給最佳。

我要發表回答

立即登入回答