V MySQL můžete tabulku sestavit pomocí union all
:
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;
Poznámky:
- Změnil jsem
name
domode
takže sloupec se stejnými informacemi má stejný název. group by
klíč musí být z prvního jméno, nikoli druhé (to jem.mode
místop.mode
).- Pokud chcete
0
místoNULL
a poté použijtecoalesce(sum(p.amount), 0)
. - Mohli byste zvážit referenční tabulku, která obsahuje hodnoty režimu.