Как мне объединить две таблицы и сравнить их? (Я спрашивал несколько раз, но не смог найти ответ.) - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу сравнить таблицу 1 и таблицу 2 только один раз. Я хочу напечатать ту же сумму, что и неправильная сумма или ошибка данных на каждой стороне.

1.table name: hospital_payment_data

id    chart_num        chart_name          visit            card_amount_received
1        9740            t1             2019-01-02               1000                        
2        23143           t2             2019-01-02               3000          
3        14220           t3             2019-01-02               3000                        
4        2000            t4             2019-01-02               4000      
5        3000            t5             2019-01-02               5000      
6        3000            t5             2019-01-02               5000      
7        4000            t6             2019-01-02               6000      
8        5000            t7             2019-01-02               6000      

2.table name: credit_card

id           card_date             advenced_amount
1           2019-01-02                 1000        
2           2020-01-02                 2000   
3           2020-01-02                 3000 
4           2020-01-02                 4000 
5           2020-01-02                 10000 
6           2020-01-02                 6000 
7           2020-01-02                 9000 

Я хочу Результат

enter image description here

в этом моем запросе:

SELECT
    hospital_payment_data.id,
  chart_num,
    visit,
  chart_name,
  sum(card_amount_received) as card_amount_received,
  credit_card.card_date,
  credit_card.amount as amount,
  if(credit_card.amount = sum(card_amount_received), 'ok', 'error') as result
from hospital_payment_data
left join credit_card on date(credit_card.card_date) = visit AND hospital_payment_data.card_amount_received = credit_card.amount
GROUP BY chart_num, visit

in это мой неправильный результат:

enter image description here

Нужно ли добавлять или изменять таблицу базы данных для печати, как я хочу? Или я должен добавить отношения? Все доступные значения данных указаны.

1 Ответ

0 голосов
/ 14 апреля 2020

Я думаю, что это то, что вы после. Дайте мне знать, если вам нужно что-то еще. Вы, вероятно, должны иметь chart_num в credit_card, чтобы вы могли объединять таблицы вместе.

Select hpd.chart_num,
hpd.chart_name
hpd.visit,
hpd.card_amount_received,
cc.card_date, 
CASE WHEN hpd.card_amount_received = SUM(cc.advenced_amount) THEN hpd.card_amount_received  ELSE NULL END AS ‘amount’,
CASE WHEN hpd.card_amount_received > SUM(cc.advenced_amount) THEN ‘error’ ELSE ‘ok’ END AS ‘result’
 from hospital_payment_data hpd
LEFT JOIN credit_card ON cc.chart_num=hpd.chart_num AND 
date(cc.card_date) = date(hpd.visit)
GROUP BY hpd.chart_num, hpd.visit;

Вероятно, было бы неплохо иметь таблицу client_visit на случай, если клиент приходит в офис дважды в день или устанавливает составить план платежей, по которому они не платят в день их прибытия в офис.

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