2015-11-03 81 views
1

我有一組數據,每天顯示「子合同」使用的分鐘數。我需要合計兒童合同消耗的分鐘數,以便我們跟蹤。總和分區依據,未給出預期結果

這是我使用的代碼。

Select 
    "combined"."id", 
    "combined"."ContractCustomer", 
    "combined"."ContractCustomerChild", 
    "combined"."Minutes", 
    SUM("combined"."Minutes") OVER (PARTITION BY  "combined"."ContractCustomerChild" ORDER BY "combined"."id") As "CustomerMinutes", 
FROM "dbo"."combined" 

我希望對每個合約孩子重新啓動總和,但是,似乎表現得那麼好。

這是結果我得到:

ID CustomerContractChild Minutes CustomerMinutes 
     1 20150101+C1   1000  1000  
     2 20150101+C1   2000  3000 
     3 20150101+c2   2500  5500 

這是我所期待

ID CustomerContractChild Minutes CustomerMinutes 
     1 20150101+C1   1000  1000  
     2 20150101+C1   2000  3000 
     3 20150101+c2   2500  2500 

我做了什麼錯?

+0

您的期望看起來正確。你可以設置一個SQL小提琴嗎?而且,你爲什麼使用雙引號? –

+0

代碼是在連接到服務器va JDBC的java客戶端中編寫的,這就是我有雙引號的原因。 – AperurePro

+0

哦,我已經從這段代碼中刪除了最後一行。數據正在被返回,即不是語法錯誤。現在唯一的問題是結果集。我想知道如果它的JDBC給這個問題。 – AperurePro

回答

0

我已經運行這個,並得到確切的輸出u需要。這與您的沒有ContractCustomer列的情況相同(您不會在結果中顯示它),代碼中的ContractCustomerChild列在結果中顯示CustomerContractChild並在FROM之前移除。

Select 
    "combined".ID, 
    "combined"."CustomerContractChild", 
    "combined"."Minutes", 
    SUM("combined"."Minutes") OVER (PARTITION BY  "combined"."CustomerContractChild" ORDER BY "combined"."id") As "CustomerMinutes" 
FROM "dbo"."combined" 
+0

感謝您抽出時間。是的,我的錯誤是我有一個ContractCustomer專欄。實質上,除了後綴+ C1,+ C2,+ C3之外,合約客戶與客戶合同相同。 – AperurePro

+0

沒關係。然後你的查詢對於所需的輸出是正確的。你的問題解決了嗎? – Esty

+0

對於複雜的運行總問題,這篇文章可能會有用。 [鏈接](http://stackoverflow.com/questions/11310877/calculate-running-total-running-balance) – Esty

0

謝謝你的迴應。由於排序等原因,我的眼睛一定是在玩弄詭計。我回顧了結果,他們看起來正確。我現在就關閉它。如果他們發現錯誤,我會再抽取一些結果並做一些嘗試。

相關問題