Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL MySQL o PHP Trasforma le righe in due colonne in modo dinamico

Funziona allo stesso modo di FS_amount , aggiungi le nuove colonne al tuo codice che genera le colonne dinamiche:

  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;

Dovresti dare un'occhiata al codice creato dalle istruzioni (ad esempio aggiungendo temporaneamente un select @sql; ), anche se dovrebbe essere abbastanza semplice aggiungere ancora più colonne nel caso in cui ne avessi bisogno.