2012-04-09 46 views
1

我希望能對此有所幫助。我有這個表:SQL Server按5天時間總和

RECHARGES 
___________ 
DATE_TIME    CLIENT   RECHARGED_MONEY 
2011-01-01 12:25:25.000 2,051307E+09 50000 
2011-01-01 12:26:27.000 2,140614E+09 100000 
2011-01-01 12:27:03.000 1,074146E+09 50000 

... 我要總結每個客戶的recharged_money,使5天團從最後的首次充電日期。

所以我選擇最後一個日期和總和所有recarged_money直到5天前,和更多5 ..等等。我怎麼能做到這一點?

泰先進, Ĵ

回答

0

這樣的事情應該有所幫助,如果我沒有錯過什麼:

WITH marked AS (
    SELECT 
    DATE_TIME, 
    RECHARGED_MONEY, 
    dategroup = DATEDIFF(DAY, DATE_TIME, MAX(DATE_TIME) OVER())/5 
    FROM RECHARGES 
) 
SELECT 
    DATE_TIME  = MAX(DATE_TIME), 
    RECHARGED_MONEY = SUM(RECHARGED_MONEY) 
FROM marked 
GROUP BY 
    dategroup 
ORDER BY 
    DATE_TIME