2014-06-11 3 views
0

J'ai un tableau composé de dates et le montant des revenus enregistrés pour ce jour remontant à environ 12 ans. Ce que je voudrais faire avec ces données est de créer un nouveau tableau avec des dates et des numéros de revenus avant 7 jours. Toute orientation serait grandement appréciée. Voici un exemple de ce que ma table source et ce que mes résultats devraient ressembler ....Roulement historique Somme quotidienne

Table source ..

DATE  | Revenue 
12/31/2013 | 200 
12/30/2013 | 300 
12/29/2013 | 400 
12/28/2013 | 100 
12/27/2013 | 200 
12/26/2013 | 150 
12/25/2013 | 350 
12/24/2013 | 450 
12/23/2013 | 200 
12/22/2013 | 300 
12/21/2013 | 100 
12/20/2013 | 300 

Table Résultant ...

DATE  | 7Dayrev 
12/31/2013 | 1700 
12/30/2013 | 1950 
12/29/2013 | 1850 
12/28/2013 | 1750 
12/27/2013 | 1750 
12/26/2013 | 1850 
ETC...... 

Répondre

1

Vous peut le faire via sous-requête corrélée:

;WITH cte AS (SELECT *,ROW_NUMBER() OVER(ORDER BY [DATE] DESC) RN 
       FROM Table1) 
SELECT a.[DATE], a.Revenue, (SELECT SUM(b.Revenue) 
          FROM cte b 
          WHERE b.RN BETWEEN a.RN-6 AND a.RN) as Rev_7Day 
FROM cte a 
ORDER BY a.RN DESC 

Démo: SQL Fiddle

+0

J'ai beaucoup travaillé. Merci beaucoup! J'avais tourné mes roues sur ceci pour une quantité embarrassante de temps ... – user2980057