sql >> Database >  >> RDS >> Mysql

Mysql MySQL of PHP Transformeer rijen dynamisch naar twee kolommen

Het werkt op dezelfde manier als FS_amount , voeg gewoon de nieuwe kolommen toe aan uw code die de dynamische kolommen genereert:

  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;

Je moet eens kijken naar de code die de instructies maken (bijvoorbeeld door tijdelijk een select @sql; toe te voegen ), hoewel het vrij eenvoudig zou moeten zijn om nog meer kolommen toe te voegen voor het geval je ze nodig hebt.




  1. group_concat resultaat werkt niet in IN voorwaarde

  2. Slaapstandcriteria voor datums

  3. Wat is de betekenis van 1/1/1753 in SQL Server?

  4. Hoe kan ik deze query herschrijven om de fout te vermijden:U kunt de doeltabel voor update niet specificeren in de FROM-clausule?