Advertisement
Guest User

Untitled

a guest
Dec 6th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. UPDATE t SET [AVE Monthly Sales] = x.avgsum FROM table t JOIN
  2. (SELECT someuniquefield ,AVG(Units) OVER (ORDER BY Date DESC) avgsum FROM table
  3. WHERE date > DATEADD(m, -6, date - DATEPART(d, date) + 1) ) as x
  4. ON x.someunqiuefield.=t.someuniquefield
  5.  
  6. CREATE TABLE #TestTable (Units int, Date_Field datetime, Master_ID int)
  7. INSERT INTO #TestTable (Units, Date_Field, Master_ID)
  8. VALUES
  9. (10,'2016-07-06',1)
  10. ,(20,'2016-08-06',1)
  11. ,(30,'2016-09-06',1)
  12. ,(40,'2016-10-06',1)
  13. ,(50,'2016-11-06',1)
  14. ,(60,'2016-12-06',1)
  15. ,(70,'2016-10-06',2)
  16. ,(80,'2016-11-06',2)
  17. ,(90,'2016-12-06',2)
  18.  
  19. SELECT
  20. tt.Master_ID
  21. ,tt.Date_Field
  22. ,tt.Units
  23. ,SUM(tt2.Units) Sum_Units
  24. FROM #TestTable tt
  25. LEFT JOIN #TestTable tt2
  26. ON tt2.Date_Field BETWEEN DATEADD(m,-3,tt.Date_Field) AND tt.Date_Field
  27. AND tt.Master_ID = tt2.Master_ID
  28. GROUP BY tt.Master_ID, tt.Date_Field, tt.Units
  29. ORDER BY tt.Master_ID, tt.Date_Field
  30.  
  31. Master_ID Date_Field Units Sum_Units
  32. 1 2016-07-06 00:00:00.000 10 10
  33. 1 2016-08-06 00:00:00.000 20 30
  34. 1 2016-09-06 00:00:00.000 30 60
  35. 1 2016-10-06 00:00:00.000 40 90
  36. 1 2016-11-06 00:00:00.000 50 120
  37. 1 2016-12-06 00:00:00.000 60 150
  38. 2 2016-10-06 00:00:00.000 70 70
  39. 2 2016-11-06 00:00:00.000 80 150
  40. 2 2016-12-06 00:00:00.000 90 240
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement