mysql - 将 mysql 输出从行转换为列

标签 mysql sql pivot

我有 MySQL 查询:

SELECT
transporttype,
concat(MONTHNAME(STR_TO_DATE(month, '%m')), ' ', year) AS `month`,
count(loadnumber) AS loads
FROM v2ReportingTable
WHERE (transporttype not in ('Extrusions-LongDistance','Extrusions-Shuttle') and urgent='no')
GROUP BY (concat(MONTHNAME(STR_TO_DATE(month, '%m')),' ',year)),transporttype
ORDER BY (concat(MONTHNAME(STR_TO_DATE(month, '%m')),' ',year)), transporttype

产生以下输出:

enter image description here

我想以列格式显示结果,如下所示: enter image description here

如何修改查询以显示结果。

一如既往地感谢您的帮助

最佳答案

SELECT  `month`,
        MAX(CASE WHEN transporttype = 'Inbound' THEN loads ELSE NULL END) `Inbound`,
        MAX(CASE WHEN transporttype = 'LocalGauteng' THEN loads ELSE NULL END) `LocalGauteng`,
        MAX(CASE WHEN transporttype = 'LongDistance' THEN loads ELSE NULL END) `LongDistance`,
        MAX(CASE WHEN transporttype = 'Shuttle-company1' THEN loads ELSE NULL END) `Shuttle-company1`,
        MAX(CASE WHEN transporttype = 'Shuttle-company2' THEN loads ELSE NULL END) `Shuttle-company2`,
        MAX(CASE WHEN transporttype = 'stores' THEN loads ELSE NULL END) `stores`,
        MAX(CASE WHEN transporttype = 'returns' THEN loads ELSE NULL END) `returns`,
        MAX(CASE WHEN transporttype = 'localkzn' THEN loads ELSE NULL END) `localkzn`
FROM
    (
        SELECT  transporttype,
                CONCAT(MONTHNAME(STR_TO_DATE(month, '%m')), ' ', year) AS `month`,
                COUNT(loadnumber) AS loads
        FROM    v2ReportingTable
        WHERE   transporttype not in ('Extrusions-LongDistance','Extrusions-Shuttle') AND
                urgent='no'
        GROUP BY (concat(MONTHNAME(STR_TO_DATE(month, '%m')),' ',year)), transporttype
    ) aa
GROUP BY `month`

关于mysql - 将 mysql 输出从行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14563436/

相关文章:

MySQL 将行转换为动态列数

执行 MySQL 命令时,bash 拒绝 MySQL 访问

Mysql 不同列的最新记录

python - 检查 pandas 数据框中的哪些值不在 SQL 数据库中

php - 如何获取提交后检查的表格单元格中的数据

php - fatal error : Call to a member function fetchAll

mysql - 限制 SELECT 结果中长文本字段的长度

php - mysql 获取数组错误?

sql - 使用某些参数查找没有子项的父记录

Excel VBA 更改数据透视表的数据源