Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql MySQL или PHP Преобразувайте редовете в две колони динамично

Работи по същия начин като FS_amount , просто добавете новите колони към кода си, който генерира динамичните колони:

  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;

Трябва да погледнете кода, който изявленията създават (например чрез временно добавяне на select @sql; ), въпреки че би трябвало да е доста просто да добавите още колони, в случай че имате нужда от тях.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да предотвратите изчакване на връзката за голям импорт на MySQL

  2. Използване на наклонени черти след mysql_real_escape_string

  3. Групирайте само по дата в колона Datetime

  4. Как да премахнете дублиращи се стойности, разделени със запетая, в една колона в MySQL

  5. Първичният ключ автоматично ли се индексира в MySQL?