Trong MySQL, bạn có thể tạo bảng bằng cách sử dụng 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;
Ghi chú:
- Tôi đã thay đổi
name
sang chế độmode
vì vậy cột có cùng thông tin có cùng tên. - Nhóm
group by
chìa khóa cần phải có từ đầu tiên tên, không phải là thứ hai (đó làm.mode
thay vìp.mode
). - Nếu bạn muốn
0
thay vìNULL
, sau đó sử dụngcoalesce(sum(p.amount), 0)
. - Bạn có thể muốn xem xét một bảng tham chiếu có chứa các giá trị chế độ.