您可以使用此查询-
SELECt supplier_id, MAX(IF(date = '2012-01-01', value, NULL)) AS '2012-01-01', MAX(IF(date = '2012-01-03', value, NULL)) AS '2012-01-03', MAX(IF(date = '2012-05-01', value, NULL)) AS '2012-05-01'FROM ( SELECt supplier_id, DATE(date) date, CONCAt(SUM(price), '(', qty, ')') value FROM supplier GROUP BY supplier_id, DATE(date) ) t GROUP BY supplier_id;+-------------+------------+------------+------------+| supplier_id | 2012-01-01 | 2012-01-03 | 2012-05-01 |+-------------+------------+------------+------------+|1 | 500.00(2) | 450.00(10) | NULL ||2 | 400.00(5) | NULL | NULL ||3 | NULL | NULL | 500.00(1) |+-------------+------------+------------+------------+它产生您想要的结果。但是,如果您想动态地进行操作,请参阅这篇文章“自动执行数据透视表查询”-http:
//www.artfulsoftware.com/infotree/queries.php#523,或者该链接-
动态数据透视表。



