2016-02-12 72 views
1

已更新:適用於Microsoft SQL Server。SQL Query - 按月交付的樞軸貸款總額

這看起來很簡單,但我把頭撞在牆上弄明白了。

我有一張貸款數據表,我希望每個月都要支付並彙總付款。這與「靜態池分析」類似,每個貸款池以行和月份作爲列。您可以使用此SQL Fiddle查看示例數據。

我創建了一個90 second screencast以更好地解釋我需要的數據透視和彙總結果,如果有幫助的話。謝謝你的幫助!

+0

Wocome to SO。偉大的方式來解釋你的問題。但是你也應該在這裏添加這組數據。你的屏幕錄像可能是暫時的,當它死的時候,你的問題將毫無用處。請在這裏添加表格數據和期望的輸出,如果你需要幫助格式化問題。 –

回答

0

這個查詢將解決您最實際的場景:

SELECT poolmonth, 
     origination, 
     [201512], 
     [201512]+[201601] as [201601], 
     [201512]+[201601]+[201602] as [201602] 
    FROM (SELECT poolmonth, 
       SUM(OriginationAmt) origination, 
       SUM(CASE WHEN PmtDue = 201512 
         THEN amtpaid ELSE 0 END) as [201512], 
       SUM(CASE WHEN PmtDue = 201601 
         THEN amtpaid ELSE 0 END) as [201601], 
       SUM(CASE WHEN PmtDue = 201602 
         THEN amtpaid ELSE 0 END) as [201602] 
      FROM Loans 
     GROUP BY poolmonth 
     ) newloans 

看到它在這裏工作:http://sqlfiddle.com/#!6/47701/12

這種方法的問題是,如果有更多的幾個月裏,你將不得不手動添加即可。爲了自動執行此操作,您必須創建一個程序來執行此操作,如同在此答案中解釋的那樣:Dynamic SQL PIVOT by @bluefeet