1

这就是我想要做的:

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

单独获取所有行

我已经成功地做到了......问题是我想要整体改变订单

这是我的表格列

[编号][日期][金额]

示例是:

1、2013-10-01、102.10

2、2013-10-01、256.15

3、...

用外行的话来说,我得到的输出,

前 x 行是按日期分组的总数

其余行是个人金额

用外行的话来说我想要的输出,

第一行是按日期计算的以下行的总和,然后冲洗并重复。

IE

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

在此先感谢您提供任何帮助。

4

2 回答 2

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
于 2013-10-09T23:13:27.780 回答
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
于 2013-10-09T23:21:57.260 回答