Mysql выберите сумму из двух таблиц, используя соединение - PullRequest
0 голосов
/ 24 марта 2019

Я хочу получить значение баланса из двух таблиц политики и платежей. 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 

Оплаченные столбцы возвращают ноль, и как я могу получить разницу между итоговой и платной.

Ответы [ 2 ]

0 голосов
/ 24 марта 2019

Вы можете рассчитать 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
0 голосов
/ 24 марта 2019

Платный столбец - только эта часть:

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

Если он возвращает ноль, сначала проверьте, что у вас есть в ваших данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...