mysql - SQL从两个表更新余额

标签 mysql sql postgresql

我需要帮助更新表中的余额列。使用更新命令

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 因为有可能 custcodereceivables 表上没有记录。

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 是否可以包含关于bookingsreceivables 的多条记录?如果是这样,我会更新答案。

关于mysql - SQL从两个表更新余额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12985654/

相关文章:

sql 截断/填充字符串

在相邻表中定义顺序的 SQL 查询表

json - 在一个查询中更新多行,但我们期望的输入来自多个数据的 json 对象

Django 在模型字段上注释 Avg

mysql - [MySQL]如何选择有记录的用户

Mysql Concat正在显示字节数组

sql - 如何将列表存储在数据库列中

java - org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 'field list' 中的未知列

mysql - 如何仅更新日期数据类型的月份部分

sql - Oracle11g for 循环中的数字溢出