获取行数并保留每行数据

时间:2013-10-09 23:04:55

标签: mysql sql

这就是我想要做的事情:

获取按日期分组的所有行的总和

单独获取所有行

我已成功完成此操作......问题是我希望订单改变整体

这是我的表格列

[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上的示例!

提前感谢您提供任何帮助。

2 个答案:

答案 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