Как показать динамическую строку данных в столбце данных в MySQL или в PHP? - PullRequest
1 голос
/ 14 июня 2019

У меня та же проблема с (MySQL или PHP Преобразование строк в столбцы) [ MySQL или PHP Преобразование строк в два столбца динамически . Но с другим форматом столбца заголовка.

Моя таблица базы данных

enter image description here

я сделал с этим вопросом, ниже моя версия запроса:

SELECT GROUP_CONCAT(
      'MAX(IF(day(tanggal) = ',
      day(tanggal),
      ', presensi, NULL)) AS `',
      tanggal,
      '`, '
    order by tanggal
  ) INTO @sql
  FROM tableName;

при выполнении запроса отображается уведомление " Запрос выполнен нормально, затронута 1 строка. ", но результат пуст, это таблица, ожидаемая, что выглядит как

enter image description here

1 Ответ

1 голос
/ 15 июня 2019

создайте статический запрос:

select id_pegawai, 
max(if(tanggal="2019-06-13", presensi, null)) as "2019-06-13",
max(if(tanggal="2019-06-14", presensi, null)) as "2019-06-14"
from yourtable
group by id_pegawai;

создайте динамический запрос:

  SET @sql = NULL;
    SELECT
     GROUP_CONCAT(
      DISTINCT
        CONCAT(
            'max(if(tanggal="', 
            tanggal, 
            '", presensi, null)) as "',
            tanggal,
            '"'
        )
     ) into @sql
    FROM yourtable;
    SET @sql = CONCAT('SELECT id_pegawai, ',
                        @sql, ' FROM yourtable GROUP BY id_pegawai');

Выполните свой динамический запрос:

    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;

на основании этого сообщения:http://buysql.com/mysql/14-how-to-automate-pivot-tables.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...