Di MySQL, Anda dapat membuat tabel menggunakan 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;
Catatan:
- Saya mengubah
name
kemode
jadi kolom dengan informasi yang sama memiliki nama yang sama. group by
kunci harus dari pertama nama, bukan kedua (yaitum.mode
bukannyap.mode
).- Jika Anda ingin
0
bukannyaNULL
, lalu gunakancoalesce(sum(p.amount), 0)
. - Anda mungkin ingin mempertimbangkan tabel referensi yang berisi nilai mode.