我正在尝试制作一些报告折线图,并发现如果我从查询中为折线图中显示的数据的每一列(日期)返回一个数据行,则最简单。挑战是我想要不止一条线。
以下是我可以使用简化的数据示例执行的操作:
| DATE | SALES | LOCATION |
| 2012-01-07 | 500 | 1 |
| 2012-01-07 | 600 | 2 |
| 2012-01-14 | 700 | 1 |
| 2012-01-14 | 400 | 2 |
| 2012-01-21 | 450 | 1 |
| 2012-01-21 | 550 | 2 |
选择日期,总和(销售额)作为 SalesTotal1 FROM TABLE
WHERE location = '1' 按日期分组
返回结果:
| DATE | SalesTotal1 |
| 2012-01-07 | 500 |
| 2012-01-14 | 700 |
| 2012-01-21 | 450 |
如果我的图表中只有一行,但我真正想要的同一列的多个别名仍然按日期分组,这将返回以下内容:
| DATE | SalesTotal1 | SalesTotal2 |
| 2012-01-07 | 500 | 600 |
| 2012-01-14 | 700 | 400 |
| 2012-01-21 | 450 | 550 |
这可能吗?子查询?我已经尝试了很多东西,谢谢〜
最佳答案
你可以这样做:
SELECT `date`,
SUM(IF(location=1,sales,0)) As SalesTotal1,
SUM(IF(location=2,sales,0)) As SalesTotal2
FROM my_table
GROUP BY `date`
您必须添加与位置一样多的列,如果您有很多位置,那就很烦人了。也许您可以考虑在代码方面进行重新安排(如果您有很多很多位置)?
关于MySql 查询为折线图按日期分组的同一列返回不同的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9627935/