示例模式:ID(VARCHAR 4),YM(VARCHAR 6),牧師(浮動),P_K(ID,YM)12個月滾動SUM從最新數據與VARCHAR YearMonth
ID YM Rev
1001 201112 150
1001 201211 200
1001 201212 200
1001 201303 500
... ... ...
1001 201605 400
1023 201112 150
1023 201211 200
1023 201212 200
1023 201303 500
... ... ...
1023 201605 700
我需要創建一個VIEW,其中每行在YM(Year Month)之前的12個月前應該有Rev(Revenue)的SUM。
我已經嘗試了以下查詢,但它從「201512」向後返回數據。我期待YM從'201603'開始,因爲這是表中最新的YM數據。
SELECT
fs.ID,
fs.YM,
(SELECT SUM(fsi.Rev) FROM FSource fsi WHERE fsi.YM >= ((100* (fs.YM/100) + 1)-100) AND fsi.YM <= fs.YM AND fsi.ID= fs.ID) AS Rev
FROM FSource fs
WHERE RIGHT(fs.ym, 2) = (SELECT COUNT(*) FROM FSource fsi WHERE fsi.YM >= ((100* (fs.ym/100) + 1)-100) AND fsi.YM <= fs.ym AND fsi.ID= fs.ID)
任何幫助,這裏有什麼可能是錯誤的發生?
預期輸出:
ID YM Rev
... ... ...
1001 201601 1500
1001 201602 2400
1001 201603 2400
1001 201604 6000
1001 201605 4800 (assuming last 12 months were 400 each, date range "201506 to 201605")
創建一個代表12個月的表格,在此表格上做左邊的加入,ISNULL(sum(yourstuff),0),group by和that應該是 – Veljko89
提供所需的輸出。 –
並用您正在使用的數據庫標記您的問題。 –