sql >> Base de Datos >  >> RDS >> Mysql

MYSQL:unir la lista de valores en una tabla

En MySQL, puede construir la tabla 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:

  • Cambié name al mode por lo que la columna con la misma información tiene el mismo nombre.
  • El group by la clave debe ser del primero nombre, no el segundo (que es m.mode en lugar de p.mode ).
  • Si desea 0 en lugar de NULL , luego use coalesce(sum(p.amount), 0) .
  • Es posible que desee considerar una tabla de referencia que contenga los valores de moda.