2012-09-12 52 views
2

我有一個表中的數據在我所喜歡的列:SQL查詢來使用ID和過去7天從給定日期

ItemId Date  CountUser  CountUserPast7Days 
1  20120101 20    null 
1  20120102 15    null 
1  20120208 12    null 
2  20120209 65    null 
2  20120611 32    null 
2  20120615 20    null 
3  20120901 45    null 

我想基於編寫一個查詢來更新CountUserPast7Days - GROUP BY關於兩個參數的數據 - ItmeId和Date(過去7天)並求和CountUser列。因此,該數據應該看起來像 -

ItemId Date  CountUser CountUserPast7Days 
1  20120101 20   20 
1  20120102 15   35 
1  20120208 12   27 
2  20120209 65   65 
2  20120611 32   32 
2  20120615 20   52 
3  20120901 45   45 

回答

3

你舉的例子輸出爲越野車,因爲還有比2012/01/02和2012/02/08之間的一個多月,但我得到了你的意思都是一樣的。你所尋找的是一個自聯接:

SELECT S1.Item, S1.Date, SUM(S2.Count) As CountPast7 FROM SlidingHitCount S1 
    INNER JOIN SlidingHitCount S2 on S1.Item = S2.Item 
WHERE S2.Date BETWEEN DATEADD(dd, -7, S1.Date) AND S1.Date 
GROUP BY S1.Item, S1.Date 

很顯然,我叫你的表「SlidingHitCount。」

+0

非常感謝布倫特...這工作! – user1664644

+0

@ user1664644:如果這是您的答案,則將其標記爲答案。 :) –

相關問題