【问题标题】:MySql: Single query to calculate from two columns of different tablesMySql:从不同表的两列计算的单个查询
【发布时间】:2015-11-26 11:59:51
【问题描述】:

我有两张桌子

invoice_tbl

+---+---------+
|id | Amount  |
+---+---------+
|1  | 5000    |
|2  | 3200    |
|3  | 7400    |
+---+---------+

reciept_tbl

+---+-------------+-----------+
|id | invoice_id  |paid_amount|
+---+-------------+-----------+
|1  |      1      | 2000      |
|2  |      1      | 3000      |
|3  |      3      | 6400      |
+---+-------------+-----------+

在上述情况下,我想通过单个查询找出发票的余额,以便我可以按余额金额做空。

感谢您的帮助。

【问题讨论】:

  • 你执行的输出是什么?
  • 根据我的经验,付款很少能如此整齐地与发票对齐。 receipt_tbl 中的 invoice_id 来自哪里?
  • invoice_id 来自 invoice_tbl id

标签: mysql sql subquery


【解决方案1】:

执行GROUP BY 计算每个id 的余额为sum(i.Amount) - sum(r.paid_amount)

select i.id, sum(i.Amount) - sum(r.paid_amount) as balance
from invoice_tbl i
    left join reciept_tbl r on i.id = r.invoice_id
group by i.id

LEFT JOIN 包含未付款的发票。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    相关资源
    最近更新 更多