Ik denk dat dit is wat je zoekt. Laat het me weten als je iets anders nodig hebt. U zou waarschijnlijk chart_num in credit_card moeten hebben, zodat u samen aan de tafels kunt deelnemen.
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;
Het zou waarschijnlijk een goed idee zijn om een client_visit-tafel te hebben voor het geval een klant twee keer per dag naar kantoor komt of een betalingsplan opstelt waarbij ze niet betalen op de dag dat ze naar kantoor komen.