【问题标题】:Mysql select sum from two table using joinMysql使用连接从两个表中选择总和
【发布时间】:2019-03-24 09:44:11
【问题描述】:

我想从两个表政策和付款中获取余额值。 MySQL 代码如下:

SELECT Sum(policy.premium)                                                   AS 
       `total` 
       , 
       (SELECT Sum(payments.amount) 
        FROM   payments 
        WHERE  ( payments.date_paid BETWEEN '2019-03-01' AND '2019-03-31' )) AS 
       `paid` 
FROM   `policy` 
       LEFT JOIN payments 
              ON policy.code = payments.code 
WHERE  ( policy.st BETWEEN '2019-03-01' AND '2019-03-31' ) 
       AND policy.trn_type = 0 

paid 列返回给 null,我怎样才能得到总和已付之间的差额。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    您可以像这样计算 2 个值:

    select t.total, coalesce(t.paid, 0) paid, (t.total - coalesce(t.paid, 0)) diff from (
      select 
        (select sum(premium) from policy where st between '2019-03-01' and '2019-03-31' and policy.trn_type=0) total,
        (select sum(amount) from payments where date_paid between '2019-03-01' and '2019-03-31') paid
    ) t
    

    【讨论】:

    • (select sum(premium) from policy where st between '2019-03-01' and '2019-03-31' and policy.trn_type=0) and select sum(amount) from payment where '2019-03-01' 和 '2019-03-31' 之间的 date_paid 有效,但 select t.total, t.paid, (t.total - t.paid) diff from ( select (select sum(premium) from policy where st 在 '2019-03-01' 和 '2019-03-31' 和 policy.trn_type=0) 总计(从 date_paid 在 '2019-03-01' 和 '2019-03-31 之间的付款中选择 sum(amount) ') 已付 ) t 给出接近错误(从付款中选择总和(金额),其中 date_paid 介于 '2019-03-01' 和 '2019-03-31' 之间)pa
    • 我在附近出现语法错误(从付款中选择总和(金额),其中 date_paid 介于 '2019-03-01' 和 '2019-03-31' 之间)pa
    • 如果支付为 null diff 也返回 null 即使它有总数,例如总计 = 1500 付费 = null 差异 = null,我该如何更正? bal 也应该是 1500
    【解决方案2】:

    付费栏目就是这部分:

    SELECT SUM(payments.amount) 
    FROM payments 
    WHERE payments.date_paid BETWEEN '2019-03-01' AND '2019-03-31'
    

    如果返回 null,请先检查数据中的内容

    【讨论】:

    • 感谢您的建议,它返回 null 因为它超出了日期范围,我更改了日期并且它工作了,但是我如何获得总和支付之间的差异?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多