2011-12-22 20 views
2

我在我的SQL腳本中使用了union並獲取了下面的數據,我的問題是如何組合第3行和第4行成爲第0行並總結線3和4的金額。提前致謝!如何將兩行分組爲一行並在使用union時合計金額

來源:
文檔行金額

11000003 1 20.6  
    11000003 2 55 

    11000003 3 55 
    11000003 4 20.6 

要:
文檔行金額

11000003 1 20.6  
    11000003 2 55 

    11000003 0 75.6  

這裏是我的腳本:

Select Document, Row_number() Over (Partition by DocumentNumber Order by DocumentNumber as Line, Amount 
From Table A 

Union 

Select Document, Row_number() Over (Partition by DocumentNumber Order by DocumentNumber as Line, Amount 
from Table A 

但我想編輯的聯合的結果,以適應我的要求,只有它一個行進行分組和總結量

+1

向我們展示一些SQL。我們可以普遍回答,但它可能不會幫助你... – gbn 2011-12-22 11:12:56

+0

第3行和第4行應該按哪個標準分組? – 2011-12-22 11:13:05

+0

他們總是行3和4,其他行1和2?我們看不到您的查詢,因此我們目前提供的任何內容都只是一個猜測。 – 2011-12-22 11:14:04

回答

0

像這樣:

SELECT Document, SUM(Line), SUM(Amount) 
FROM tablename 
GROUP BY Document 
+0

這將產生單個結果行,並且我不知道從哪裏獲取SUM(Line)。 – 2011-12-22 11:13:55

+0

實際上這行是由Row_number生成的,我無法選擇它 – user1111569 2011-12-22 11:20:55

+0

這是我的腳本:選擇文檔,Row_number()覆蓋(按文檔編號分區按文檔編號排序爲行,表格數量聯合選擇文檔,Row_number() (由DocumentNumber按DocumentNumber劃分爲Line,來自Table A的金額,但我想編輯union結果以適合我的要求,即將其組合爲一行並總計金額 – user1111569 2011-12-22 11:37:10

0

一個例子,從字面上只適用您的提供的數據是:

SELECT Document,Line,Sum(Amount) 
FROM 
    (SELECT Document,CASE Line WHEN 3 THEN 0 WHEN 4 THEN 0 ELSE Line END as Line,Amount 
    FROM 
     (<Your current query>) t 
    ) t 
GROUP BY Document,Line 

但是,我不知道如果與您更廣泛的需求,適合,因爲你已經沒有太多的規範呢。

+0

以下是我的腳本: – user1111569 2011-12-22 11:23:53

+0

@ user1111569 - 編輯你的問題,並在那裏添加你的腳本,不要嘗試在評論中發佈它(你不能像代碼一樣格式化它(但你應該在編輯你的問題時格式化)) – 2011-12-22 11:25:02

+0

這裏是我的腳本:選擇文檔,Row_number()覆蓋(按文檔編號分區按文檔編號排序爲行,表格數量A選擇文檔,Row_number()覆蓋(Pa按照DocumentNumber的順序按照DocumentNumber的順序,Line,來自表A的金額,但是我想編輯聯合結果以符合我的要求,即將其組合爲一行並總計金額 – user1111569 2011-12-22 11:30:53