我有這個CTE。我的目標是顯示結果集中的所有行和具有相同值的列的總數。如何將Totals添加到CTE生成的行組中
WITH CTEVal AS
(SELECT RNum, Amount, Tag, TAmount,
ROW_NUMBER() OVER(ORDER BY CONVERT(DATETIME, TDate, 101) DESC) AS RowNum
from [dbo].[viewJD])
SELECT TDate, RNum,
CASE WHEN Tag = 'DR' THEN CONVERT(VARCHAR(50),Amount) ELSE '0.00' END AS Debit,
CASE WHEN Tag = 'CR' THEN CONVERT(VARCHAR(50),Amount) ELSE '0.00' END AS Credit FROM CTEVal
返回結果集
TDate Rnum Debit Credit
12-22-2015 8 100 0.00
12-22-2015 8 300 0.00
12-22-2015 8 0.00 400
12-22-2015 9 250 0.00
12-22-2015 9 250 0.00
12-22-2015 9 0.00 500
12-23-2015 10 600 0.00
12-23-2015 10 0.00 100
12-23-2015 10 0.00 500
預期的結果集
TDate Rnum Debit Credit
12-22-2015 8 100 0.00
12-22-2015 8 300 0.00
12-22-2015 8 0.00 400
TOTAL 400 400
12-22-2015 9 250 0.00
12-22-2015 9 250 0.00
12-22-2015 9 0.00 500
TOTAL 500 500
12-23-2015 10 600 0.00
12-23-2015 10 0.00 100
12-23-2015 10 0.00 500
TOTAL 600 600
選擇*從viewJD將返回
TDate Rnum Amount Tag TAmount
12-22-2015 8 100 DR 400
12-22-2015 8 300 DR 400
12-22-2015 8 400 CR 400
12-22-2015 9 250 DR 500
12-22-2015 9 250 DR 500
12-22-2015 9 500 CR 500
12-23-2015 10 600 DR 600
12-23-2015 10 100 CR 600
12-23-2015 10 500 CR 600
DR的
總和= CR的總和= TAmount
看看使用'ROLLUP'也許:https://technet.microsoft.com/en-us/library/bb522495(v=sql.105).aspx。你沒有腳本化你的源數據的樣本,否則我會回答一個完整的解決方案。 – Tanner
@Jc Balantakbo你可以告訴我什麼是表viewJD中列Rnum的數據類型..? – DJs
@Siya Rnum應該是int –