2016-09-09 40 views
0

早安MySQL的总和,并更新

我有一个MySQL表,它看起来是这样的。

表:接收

+--------------+-----------+---------+---------+-------+ 
| DateReceived | ItemCode | QtyPack | QtyStan | PCS | 
+--------------+-----------+---------+---------+-------+ 
| 2016-09-09 | DRY000004 | 30.00 | 0.00 | 24.00 | 
| 2016-09-09 | DRY000007 | 60.00 | 0.00 | 12.00 | 
| 2016-09-09 | DRY000010 | 90.00 | 0.00 | 1.00 | 
| 2016-09-09 | DRY000011 | 100.00 | 0.00 | 1.00 | 
| 2016-09-09 | DRY000012 | 1.00 | 0.00 | 12.00 | 
| 2016-09-09 | DRY000012 | 1.00 | 0.00 | 12.00 | 
+--------------+-----------+---------+---------+-------+ 

和表方差

+-----------+-----------+ 
| ItemCode | Receiving | 
+-----------+-----------+ 
| DRY000004 |  NULL | 
| DRY000007 |  NULL | 
| DRY000010 |  NULL | 
| DRY000011 |  NULL | 
| DRY000012 |  NULL | 
| DRY000013 |  NULL | 
| DRY000014 |  NULL | 
| DRY000016 |  NULL | 
| DRY000017 |  NULL | 
| DRY000018 |  NULL | 
| DRY000019 |  NULL | 
| DRY000020 |  NULL | 
| DRY000021 |  NULL | 
| EQU000001 |  NULL | 
+-----------+-----------+ 

我的目标在这里是在列表Receiving传输之前获取的QtyPack * PCS + QtyStan的总和:Variance和这里是我的代码

UPDATE Variance VAR INNER JOIN receiving REv ON VAR.ItemCode = REV.ItemCode 
SET VAR.Receiving = replace(REV.QtyPack, ',', '') * replace(REV.PCS, ',', '') + replace(REV.QtyStan, ',', '') 
WHERE VAR.ItemCode = REV.ItemCode and REV.Status = 'Posted' AND rev.DateReceived between '2016-09-09' and 
'2016-09-09'; 

请忽略where子句中的条件,但如果你想这就是是我的其他标准在Table:Receiving

即使代码工作似乎有什么不对我有相同ItemCode接收有一个数据,那就是DRY0000121

QtyPack要剪切的故事,总之,这里是我的问题

我怎样才能在表Variance传输之前总结所有ItemCode?例如DRY000012在接收传输之前必须变为24。

TYSM为今后帮助

回答

0
UPDATE Variance t1 
INNER JOIN 
(
    SELECT ItemCode, 
      Status, 
      DateReceived, 
      REPLACE(QtyPack, ',', '') * REPLACE(PCS, ',', '') + 
      REPLACE(QtyStan, ',', '') AS amount 
    FROM Receiving 
) t2 
    ON t1.ItemCode = t2.ItemCode 
SET t1.Receiving = t2.amount 
WHERE t2.Status = 'Posted' AND 
     t2.DateReceived BETWEEN '2016-09-09' AND '2016-09-09' 

这假定一个ItemCode只有在Receiving表中出现一次,而我们没有做UPDATE之前需要任何形式的聚集。

+0

TYSM的帮助,但我做了一些改变 –

+1

真的很棒的帮助,已批准 –