sql >> Databasteknik >  >> RDS >> Mysql

MYSQL:Slå samman värdelistan till en tabell

I MySQL kan du konstruera tabellen med 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;

Anmärkningar:

  • Jag ändrade name till mode så kolumnen med samma information har samma namn.
  • Gruppen group by nyckeln måste vara från den första namn, inte den andra (det är m.mode istället för p.mode ).
  • Om du vill ha 0 istället för NULL , använd sedan coalesce(sum(p.amount), 0) .
  • Du kanske vill överväga en referenstabell som innehåller lägesvärdena.



  1. MySQL:Fråga efter unicode-enheter

  2. Det går inte att kopiera förskapad db från tillgångar

  3. mysql:vem?

  4. MySQL-rapporteringstjänster med öppen källkod