簡體   English   中英

如何在mysql或php中向數據列顯示動態數據行?

[英]How to show dynamic data row to data column in mysql or within php?

我有同樣的問題(MySQL 或 PHP 將行轉換為列)[ Mysql MySQL 或 PHP 將行動態轉換為兩列 但具有不同的標題列格式。

我的數據庫表

在此處輸入圖片說明

我已經完成了這個問題,下面是我的查詢版本:

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

運行查詢時,它顯示通知“查詢執行正常,1 行受影響。 ”,但結果為空,這是該表預期的樣子

在此處輸入圖片說明

創建您的靜態查詢:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM