我需要帮助更新表中的余额列。使用更新命令
customer_master 中的余额列
customer_master > custcode,balance
需要根据两个表中的值进行更新
Bookings > custcode, bookingamount
Receivables > custcode, amountrecd
对于一个客户代码,余额是bookingamount - amountrecd
该命令用于mysql和postgresql
它可以适用于单个客户(例如 custcode ='A1234XXXXX'),也可以适用于 customer_master 中存在的所有客户。
我尝试使用 Google 搜索“从两个表更新余额”,但到目前为止没有成功。
谢谢
最佳答案
对于MySQL,即使是UPDATE
语句也可以连接多个表。我使用 LEFT JOIN
因为有可能 custcode
在 receivables
表上没有记录。
UPDATE customer_master a
LEFT JOIN bookings b
ON a.custcode = b.custcode
LEFT JOIN receivables c
ON a.custcode = c.costcode
SET a.balance = COALESCE(b.bookingamount, 0) - COALESCE(c.amountrecd, 0)
-- WHERE a.custcode = 'A1234XXXXX'
后续问题:custcode 是否可以包含关于bookings
和receivables
的多条记录?如果是这样,我会更新答案。
关于mysql - SQL从两个表更新余额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12985654/