Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mysql MySQL oder PHP Zeilen dynamisch in zwei Spalten umwandeln

Es funktioniert genauso wie FS_amount , fügen Sie einfach die neuen Spalten zu Ihrem Code hinzu, der die dynamischen Spalten generiert:

  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;

Sie sollten sich den Code ansehen, den die Anweisungen erzeugen (z. B. durch vorübergehendes Hinzufügen eines select @sql; ), obwohl es ziemlich einfach sein sollte, noch mehr Spalten hinzuzufügen, falls Sie sie benötigen.