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
name
geändert in denmode
die Spalte mit den gleichen Informationen hat also den gleichen Namen. - Die
group by
Schlüssel muss vom ersten sein Name, nicht der zweite (das istm.mode
stattp.mode
). - Wenn Sie
0
wollen stattNULL
, dann verwenden Siecoalesce(sum(p.amount), 0)
. - Möglicherweise möchten Sie eine Referenztabelle in Betracht ziehen, die die Moduswerte enthält.