【问题标题】:How to show dynamic data row to data column in mysql or within php?如何在mysql或php中将动态数据行显示到数据列?
【发布时间】:2019-06-14 20:10:45
【问题描述】:

我有同样的问题(MySQL 或 PHP 将行转换为列)[Mysql MySQL or PHP Transform rows to two columns dynamically.但不同的标题列格式。

我的数据库表

我已经完成了this 的问题,下面是我的查询版本:

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

运行查询时,它会显示通知“查询执行正常,影响 1 行。”,但结果为空,这是表格预期的样子

【问题讨论】:

    标签: php mysql laravel


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 2012-08-25
      • 1970-01-01
      • 2017-07-15
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      相关资源
      最近更新 更多