Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql MySQL ou PHP Transforme dynamiquement les lignes en deux colonnes

Cela fonctionne de la même manière que FS_amount , ajoutez simplement les nouvelles colonnes à votre code qui génère les colonnes dynamiques :

  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;

Vous devriez jeter un œil au code créé par les instructions (par exemple, en ajoutant temporairement un select @sql; ), même s'il devrait être assez simple d'ajouter encore plus de colonnes au cas où vous en auriez besoin.