2011-03-07 93 views
0
UPDATE product, 
     claimdetail 
    SET product.ProductQuantity = (product.ProductQuantity - claimdetail.quantity) 
WHERE product.ProductId = claimdetail.productcode 

上面的代碼是當員工使用產品時聲稱它有問題從股票中扣除產品。如果員工使用相同的產品2次,只扣除一次,我該如何解決?SQL語句MySQL

claimdetail在許多記錄中有產品代碼「4712893150132」它只扣除一條記錄應扣除所有記錄。

+2

這是非常相似,你的最後一個問題。這又不是很理解。請修改。也許提供表架構和示例數據? – Simon 2011-03-07 04:54:04

回答

1
UPDATE product 
JOIN 
(
SELECT productcode, SUM(quantity) SUMClaim 
FROM claimdetail 
GROUP BY productcode 
) claims on claims.productcode = product.ProductId 
SET product.ProductQuantity = product.ProductQuantity - claims.SUMClaim 
0

更新產品 SET product.ProductQuantity =(product.ProductQuantity - claimdetail.quantity) WHERE product.ProductId = claimdetail.productcode

+0

它有一個小問題的代碼可以從股票中扣除,但如果它有相同的claimdetail.productcode它只使用第一行來扣除它,就像我買ICECREAM 2 PIECE AND IT PUT INTO 2 RECORD它只扣除一個謝謝 – tee 2011-03-07 05:08:08