我在创建每隔几分钟就会在cronjob中运行的SQL语句时遇到问题。

我想对ItemCode的(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'";


我了解这是错误的。但我不确定如何正确放置它。

最佳答案

您当前的语法已关闭。您可以将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'

10-06 10:12