sql >> Databáze >  >> RDS >> Mysql

Mysql MySQL nebo PHP Dynamicky transformuje řádky na dva sloupce

Funguje to stejně jako FS_amount , stačí přidat nové sloupce do kódu, který generuje dynamické sloupce:

  SELECT GROUP_CONCAT(DISTINCT CONCAT(
      'MAX(IF(month = ''',
      month,
      ''' and year(date) = ',
      year(date),
      ', FS_amount, NULL)) AS `',
      CONCAT('FA_',month),
      '_',
      year(date),
      '`, ', 
      'MAX(IF(month = ''',
      month,
      ''' and year(date) = ',
      year(date),
      ', AS_amount, NULL)) AS `',
      CONCAT('AS_',month),
      '_',
      year(date),
      '`'      
      )
    order by date
  ) INTO @sql
  FROM tmp_results;

Měli byste se podívat na kód, který příkazy vytvářejí (např. dočasným přidáním select @sql; ), i když by mělo být docela jednoduché přidat ještě další sloupce pro případ, že je budete potřebovat.




  1. CREATE TABLE IF NOT EXISTS se nezdaří, protože tabulka již existuje

  2. 12c Změny DBA_USERS

  3. Jak ve WiX otestuji existenci klíče registru (nikoli hodnoty) pro Oracle ODP.Net

  4. Získávání dat mezi rozsahem dat