В MySQL можете да конструирате таблицата с помощта на 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;
Бележки:
- Промених
name
къмmode
така че колоната със същата информация има същото име. group by
ключът трябва да е от първия име, а не вторият (това еm.mode
вместоp.mode
).- Ако искате
0
вместоNULL
, след това използвайтеcoalesce(sum(p.amount), 0)
. - Можете да помислите за справочна таблица, която съдържа стойностите на режима.