这就是我想要做的:
获取按日期分组的所有行的总和
单独获取所有行
我已经成功完成了...问题是我希望整体改变顺序
这是我的表格列
[id][日期][数量]
例如:
1, 2013-10-01, 102.10
2, 2013-10-01, 256.15
3, ...
用外行的话说,我得到的输出,
前x行是按日期分组的总数
其余行是个人金额
通俗地说,我想要的输出,
第一行是以下各行的日期总和,然后冲洗并重复。
即
2013-10-01, 200.00 <-- 总计
2013-10-01, 150.00
2013-10-01, 50.00
2013-10-02, 300.00 <-- 总计
2013-10-02, 150.00
2013-10-02, 150.00
这是我的查询:
SELECT
t.date,
round(sum(t.amount), 2) as total
FROM invoice t
GROUP BY t.date
UNION ALL
SELECT
t.date,
round(t.amount, 2)
FROM invoice t;
请参阅我的示例 SQLFiddle !
提前感谢您对此提供的任何帮助。
最佳答案
假设您的意思是您想要按日期更改结果的顺序(我通常不会做出这样的假设),您只需要在您的 sql 中添加一个“ORDER BY”。下面应该可以解决问题。
SELECT
t.date,
round(sum(t.amount), 2) as total
FROM invoice t
GROUP BY t.date
UNION ALL
SELECT
t.date,
round(t.amount, 2)
FROM invoice t
ORDER BY date
关于mysql - 获取行总和并保留每行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19284311/