这就是我想要做的事情:
获取按日期分组的所有行的总和
单独获取所有行
我已成功完成此操作......问题是我希望订单改变整体
这是我的表格列
[ID] [日期] [量]
示例:
1,2013-10-01,102.10
2,2013-10-01,256.15
3,......
我在Laymen的术语中得到的输出,
第一行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上的示例!
提前感谢您提供任何帮助。
答案 0 :(得分:1)
假设您想要按日期更改结果的顺序(我通常不会做出这样的假设),您只需要在您的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
答案 1 :(得分:1)
根据您的编辑,您似乎希望按日期排序,然后按总金额降序排序:
SELECT
date,
round(sum(amount), 2) as total
FROM invoice
GROUP BY date
UNION ALL
SELECT
date,
round(amount, 2)
FROM invoice
ORDER BY date, total DESC