In MySQL können Sie die Tabelle mit union all erstellen :
select m.mode, SUM(p.amount)
from (select 'Cash' as mode union all
select 'Card' union all
select 'Cheque' union all
select 'Bank'
) m left join
payments p
on m.mode = p.mode
group by m.mode;
Hinweise:
- Ich habe
namegeändert in denmodedie Spalte mit den gleichen Informationen hat also den gleichen Namen. - Die
group bySchlüssel muss vom ersten sein Name, nicht der zweite (das istm.modestattp.mode). - Wenn Sie
0wollen stattNULL, dann verwenden Siecoalesce(sum(p.amount), 0). - Möglicherweise möchten Sie eine Referenztabelle in Betracht ziehen, die die Moduswerte enthält.