使用以下查询透视数据:
SELECT t.group,
t.computer,
MAX(CASE WHEN t.date = '2009-08-18' THEN t.total ELSE 0 END) AS '2009-08-18',
MAX(CASE WHEN t.date = '2009-08-19' THEN t.total ELSE 0 END) AS '2009-08-19',
MAX(CASE WHEN t.date = '2009-08-20' THEN t.total ELSE 0 END) AS '2009-08-20'
--, etc...
FROM TABLE t
GROUP BY t.group, t.computer
您可以选择为正在旋转的数据定义每列,也可以使用
MySQL's Prepared Statement syntax
动态创建这些列。
我觉得有必要指出你的例子前后矛盾
LAPTOP2
,的值为零
2009-08-18
,但是
main
其值为空。两人都没有那一天的记录。如果要将这些显示为空白/etc,请更改
ELSE 0 END
到
ELSE NULL END
CASE
声明。