我在创建一个每隔几分钟就会在cronjob中运行的SQL语句时遇到问题。
我想要平衡ItemCode
s(ID)相同但每个国家/地区不同的一列
表:
+----------+--------+---------+
| ItemCode | OnHand | country |
+----------+--------+---------+
| 08040 | 450 | de |
+----------+--------+---------+
| 08040 | 000 | hu |
+----------+--------+---------+
| 08040 | 145 | si |
+----------+--------+---------+
我想OnHand where country = de
并将其放入OnHand where country = hu
。 (对于多个ItemCode
- 有7000个)
UPDATE sap_items
ON sap_items.ItemCode = sap_items.ItemCode AND
sap_items.country='de'
SET sap_items.OnHand = sap_items.OnHand
WHERE sap_items.country='hu'";
我明白这是错的。但我不确定如何正确地把它。
答案 0 :(得分:0)
您当前的语法已关闭。你可以结合自我加入UPDATE
:
UPDATE sap_items AS t1
INNER JOIN sap_items AS t2
ON t1.ItemCode = t2.ItemCode
SET t1.OnHand = t2.OnHand
WHERE t1.country = 'hu' AND t2.country = 'de'