Mysql
 sql >> Database >  >> RDS >> Mysql

Come faccio a unire due tabelle e confrontarle? (Ho chiesto più volte, ma non sono riuscito a trovare la risposta.)

Penso che questo sia quello che stai cercando. Fammi sapere se hai bisogno di qualcos'altro. Probabilmente dovresti avere chart_num in credit_card in modo da poter unire i tavoli insieme.

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;

Probabilmente sarebbe una buona idea avere un tavolo client_visit nel caso in cui un cliente venga in ufficio due volte al giorno o stabilisca un piano di pagamento in cui non paga il giorno in cui viene in ufficio.