2013-10-09 75 views
1

這就是我要做的:獲取行的總和,並保持各行數據

獲取按日期分組的所有行的總和

獲得單獨

我有所有行成功地做到了這一點...問題是我希望的順序改變整體

這裏是我的表列

[ID] [日期] [金額]

例子是:

1,2013年10月1日,102.10

2,2013年10月1日,256.15

3,...

輸出I得到在外行的話來說,

行的第一個x是總計按日期

分組行的其餘部分s爲個別達

我想在外行人的話說輸出,

第一行是總按日期以下行,然後用清水沖洗,重複。

2013年10月1日,200.00 < - 總

2013年10月1日,150.00

2013年10月1日,50.00

2013-10- 02,300.00 < - 合計

2013-10-02,150.00

2013年10月2日,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

究竟什麼是你的問題?你只是想添加'Order By'到最後? – sgeddes

+0

@sgeddes對不起,我沒有說清楚。我正在編輯我的帖子,以解釋當我評論這件事時,我想讓輸出看起來像什麼樣子。 – John

+0

不用擔心 - 等到我看到您的編輯後才發佈答案。很高興我們可以提供幫助。 – sgeddes

回答

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 
+0

這基本上是我想要的,出於某種原因,我不認爲這會工作,我沒有嘗試。謝謝你的快速反應。我現在所做的只是在第二輪選擇(t.amount,2)之後追加總共DESC,並添加爲總數。 – John

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