Intereting Posts
Метод gettext PHP дает пустой ответ Array-Merge на ассоциативном массиве в PHP Что еще может создавать PHP помимо веб-сайтов? preg_match возвращает одинаковые элементы только один раз Сломанные результаты пакетного преобразования с помощью командной строки ImageMagick в Linux Объявление Zend_Test_PHPUnit_Constraint_DomQuery :: evaluation () должно быть совместимо с именем PHPUnit_Framework_Constraint :: evaluation () doctrine: schema: обновление не учитывает порядок столбцов Приложение C # должно отправлять некоторые данные на веб-сайт php, но должно уважать политику аутентификации Могу ли я вернуть старое поведение __tostring () в PHP 5.3? Как удалить продукт из категории magento 1.5 Laravel driver 'mail' не отправляет электронное письмо Как использовать array_count_values ​​() и mySQL для подсчета значения Продолжить вывод MYSQL в PHP Конструктор Imagick сбой PHP / CGI PHP с использованием CURL: есть ли способ эмулировать куки-файл вместо сохранения его в файл?

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

У меня такой же сценарий, как у меня в MySQL или PHP. Преобразование строк в столбцы

Но теперь мне нужно перестроить таблицу, и это результат

введите описание изображения здесь

Это почти то же самое со ссылкой выше, но я должен включить AS_amount.anyone может мне помочь?

Я хочу получить результат ниже, но с AS_month_2016 … и т.д. в правой части каждого FA_mont2016

введите описание изображения здесь

Это мой код:

CREATE DEFINER=`root`@`localhost` PROCEDURE `display_annualize_table`() BEGIN SET group_concat_max_len=10028; SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'MAX(IF(month = ''', month, ''' and year(date) = ', year(date), ', FS_amount, NULL)) AS `', CONCAT('FA_',month), '_', year(date), '`') order by date ) INTO @sql FROM tmp_results; if coalesce(@sql,'') != '' then set @sql = concat(', ', @sql); end if; SET @sql = CONCAT( 'SELECT r.account as Account, r.region as Region ', coalesce(@sql,''), 'FROM tmp_results r LEFT JOIN accounts AS a on r.account_id = a.id GROUP BY r.account, r.region ORDER By r.account_id'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END 

Нужна ваша помощь, пожалуйста. Заранее спасибо!

Solutions Collecting From Web of "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; ), хотя должно быть довольно просто добавить еще больше столбцов, если они вам понадобятся.