Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MYSQL:Junte a lista de valores em uma tabela


No MySQL, você pode construir a tabela usando 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;

Notas:
  • Alterei name para mode então a coluna com a mesma informação tem o mesmo nome.
  • O group by chave precisa ser do primeiro nome, não o segundo (isto é m.mode em vez de p.mode ).
  • Se você quiser 0 em vez de NULL , então use coalesce(sum(p.amount), 0) .
  • Convém considerar uma tabela de referência que contenha os valores de modo.