/****** Object: Table [dbo].[TestDate] Script Date: 02/08/2013 13:58:52 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[TestDate]( [TimePoint] [datetime] NULL, [TPYear] [int] NULL, [TPMth] [int] NULL, [TPDay] [int] NULL, [TPHour] [int] NULL, [TPIntDate] [int] NULL) ON [PRIMARY]GOInsert into TestDate(Timepoint,TPYear,TPMth, TPDay, TPHour, TPIntDate)select '01/01/2012 05:00:00',2012,1,1,5,1unionselect '01/02/2012 05:00:00',2012,1,2,5,2unionselect '01/03/2012 05:00:00',2012,1,3,5,3unionselect '01/04/2012 05:00:00',2012,1,4,5,4unionselect '01/05/2012 05:00:00',2012,1,5,5,5unionselect '01/06/2012 05:00:00',2012,1,6,5,6unionselect '01/07/2012 05:00:00',2012,1,7,5,7unionselect '01/08/2012 05:00:00',2012,1,8,5,8unionselect '01/09/2012 05:00:00',2012,1,9,5,9unionselect '01/10/2012 05:00:00',2012,1,10,5,10unionselect '01/11/2012 05:00:00',2012,1,11,5,11unionselect '01/12/2012 05:00:00',2012,1,12,5,12unionselect '01/13/2012 05:00:00',2012,1,13,5,13unionselect '01/14/2012 05:00:00',2012,1,14,5,14unionselect '01/15/2012 05:00:00',2012,1,15,5,15unionselect '01/16/2012 05:00:00',2012,1,16,5,16unionselect '01/17/2012 05:00:00',2012,1,17,5,17unionselect '01/18/2012 05:00:00',2012,1,18,5,18unionselect '01/19/2012 05:00:00',2012,1,19,5,19unionselect '01/20/2012 05:00:00',2012,1,20,5,20unionselect '01/21/2012 05:00:00',2012,1,21,5,21unionselect '01/22/2012 05:00:00',2012,1,22,5,22unionselect '01/23/2012 05:00:00',2012,1,23,5,23unionselect '01/24/2012 05:00:00',2012,1,24,5,24unionselect '01/25/2012 05:00:00',2012,1,25,5,25unionselect '01/26/2012 05:00:00',2012,1,26,5,26unionselect '01/27/2012 05:00:00',2012,1,27,5,27unionselect '01/28/2012 05:00:00',2012,1,28,5,28unionselect '01/29/2012 05:00:00',2012,1,29,5,29unionselect '01/30/2012 05:00:00',2012,1,30,5,30unionselect '01/31/2012 05:00:00',2012,1,31,5,31unionselect '02/01/2012 05:00:00',2012,2,1,5,32unionselect '02/02/2012 05:00:00',2012,2,2,5,33unionselect '02/03/2012 05:00:00',2012,2,3,5,34unionselect '02/04/2012 05:00:00',2012,2,4,5,35unionselect '02/05/2012 05:00:00',2012,2,5,5,36unionselect '02/06/2012 05:00:00',2012,2,6,5,37unionselect '02/07/2012 05:00:00',2012,2,7,5,38unionselect '02/08/2012 05:00:00',2012,2,8,5,39unionselect '02/09/2012 05:00:00',2012,2,9,5,40unionselect '02/10/2012 05:00:00',2012,2,10,5,41unionselect '02/11/2012 05:00:00',2012,2,11,5,42unionselect '02/12/2012 05:00:00',2012,2,12,5,43
/****** Object: Table [dbo].[TestNode] Script Date: 02/08/2013 14:08:19 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[TestNode]( [TimePoint] [datetime] NULL, [Sink] [varchar](50) NULL, [Source] [varchar](50) NULL, [Delta] [decimal](8, 2) NULL) ON [PRIMARY]GOSET ANSI_PADDING OFFGOInsert into TestNode(Timepoint,Sink, Source, Delta)select '01/01/2012 05:00:00','PEACH BOTTOM','OVEC',1unionselect '01/02/2012 05:00:00','PEACH BOTTOM','OVEC',1.5unionselect '01/03/2012 05:00:00','PEACH BOTTOM','OVEC',1.7unionselect '01/04/2012 05:00:00','PEACH BOTTOM','OVEC',9unionselect '01/05/2012 05:00:00','PEACH BOTTOM','OVEC',6unionselect '01/06/2012 05:00:00','PEACH BOTTOM','OVEC',-8unionselect '01/07/2012 05:00:00','PEACH BOTTOM','OVEC',5unionselect '01/08/2012 05:00:00','PEACH BOTTOM','OVEC',4unionselect '01/09/2012 05:00:00','PEACH BOTTOM','OVEC',5.1unionselect '01/10/2012 05:00:00','PEACH BOTTOM','OVEC',7unionselect '01/11/2012 05:00:00','PEACH BOTTOM','OVEC',3unionselect '01/12/2012 05:00:00','PEACH BOTTOM','OVEC',7unionselect '01/13/2012 05:00:00','PEACH BOTTOM','OVEC',35unionselect '01/14/2012 05:00:00','PEACH BOTTOM','OVEC',-9unionselect '01/15/2012 05:00:00','PEACH BOTTOM','OVEC',3unionselect '01/16/2012 05:00:00','PEACH BOTTOM','OVEC',47unionselect '01/17/2012 05:00:00','PEACH BOTTOM','OVEC',1.6unionselect '01/18/2012 05:00:00','PEACH BOTTOM','OVEC',7.4unionselect '01/19/2012 05:00:00','PEACH BOTTOM','OVEC',5unionselect '01/20/2012 05:00:00','PEACH BOTTOM','OVEC',6.3unionselect '01/21/2012 05:00:00','PEACH BOTTOM','OVEC',7unionselect '01/22/2012 05:00:00','PEACH BOTTOM','OVEC',8unionselect '01/23/2012 05:00:00','PEACH BOTTOM','OVEC',6.5unionselect '01/24/2012 05:00:00','PEACH BOTTOM','OVEC',-7unionselect '01/25/2012 05:00:00','PEACH BOTTOM','OVEC',7unionselect '01/26/2012 05:00:00','PEACH BOTTOM','OVEC',6.2unionselect '01/27/2012 05:00:00','PEACH BOTTOM','OVEC',7unionselect '01/28/2012 05:00:00','PEACH BOTTOM','OVEC',1unionselect '01/29/2012 05:00:00','PEACH BOTTOM','OVEC',-8unionselect '01/30/2012 05:00:00','PEACH BOTTOM','OVEC',-3unionselect '01/31/2012 05:00:00','PEACH BOTTOM','OVEC',7unionselect '02/01/2012 05:00:00','PEACH BOTTOM','OVEC',10unionselect '02/02/2012 05:00:00','PEACH BOTTOM','OVEC',9unionselect '02/03/2012 05:00:00','PEACH BOTTOM','OVEC',6unionselect '02/04/2012 05:00:00','PEACH BOTTOM','OVEC',-9unionselect '02/05/2012 05:00:00','PEACH BOTTOM','OVEC',-74unionselect '02/06/2012 05:00:00','PEACH BOTTOM','OVEC',6unionselect '02/07/2012 05:00:00','PEACH BOTTOM','OVEC',3unionselect '02/08/2012 05:00:00','PEACH BOTTOM','OVEC',34unionselect '02/09/2012 05:00:00','PEACH BOTTOM','OVEC',-54unionselect '02/10/2012 05:00:00','PEACH BOTTOM','OVEC',-41unionselect '02/11/2012 05:00:00','PEACH BOTTOM','OVEC',-35unionselect '02/12/2012 05:00:00','PEACH BOTTOM','OVEC',100Unionselect '01/01/2012 05:00:00','PEACH BOTTOM','ELMARA',1unionselect '01/02/2012 05:00:00','PEACH BOTTOM','ELMARA',1.5unionselect '01/03/2012 05:00:00','PEACH BOTTOM','ELMARA',1.7unionselect '01/04/2012 05:00:00','PEACH BOTTOM','ELMARA',9unionselect '01/05/2012 05:00:00','PEACH BOTTOM','ELMARA',6unionselect '01/06/2012 05:00:00','PEACH BOTTOM','ELMARA',-8unionselect '01/07/2012 05:00:00','PEACH BOTTOM','ELMARA',5unionselect '01/08/2012 05:00:00','PEACH BOTTOM','ELMARA',4unionselect '01/09/2012 05:00:00','PEACH BOTTOM','ELMARA',5.1unionselect '01/10/2012 05:00:00','PEACH BOTTOM','ELMARA',7unionselect '01/11/2012 05:00:00','PEACH BOTTOM','ELMARA',3unionselect '01/12/2012 05:00:00','PEACH BOTTOM','ELMARA',7unionselect '01/13/2012 05:00:00','PEACH BOTTOM','ELMARA',35unionselect '01/14/2012 05:00:00','PEACH BOTTOM','ELMARA',-9unionselect '01/15/2012 05:00:00','PEACH BOTTOM','ELMARA',3unionselect '01/16/2012 05:00:00','PEACH BOTTOM','ELMARA',47unionselect '01/17/2012 05:00:00','PEACH BOTTOM','ELMARA',1.6unionselect '01/18/2012 05:00:00','PEACH BOTTOM','ELMARA',7.4unionselect '01/19/2012 05:00:00','PEACH BOTTOM','ELMARA',5unionselect '01/20/2012 05:00:00','PEACH BOTTOM','ELMARA',6.3unionselect '01/21/2012 05:00:00','PEACH BOTTOM','ELMARA',7unionselect '01/22/2012 05:00:00','PEACH BOTTOM','ELMARA',8unionselect '01/23/2012 05:00:00','PEACH BOTTOM','ELMARA',6.5unionselect '01/24/2012 05:00:00','PEACH BOTTOM','ELMARA',-7unionselect '01/25/2012 05:00:00','PEACH BOTTOM','ELMARA',7unionselect '01/26/2012 05:00:00','PEACH BOTTOM','ELMARA',6.2unionselect '01/27/2012 05:00:00','PEACH BOTTOM','ELMARA',7unionselect '01/28/2012 05:00:00','PEACH BOTTOM','ELMARA',1unionselect '01/29/2012 05:00:00','PEACH BOTTOM','ELMARA',-8unionselect '01/30/2012 05:00:00','PEACH BOTTOM','ELMARA',-3unionselect '01/31/2012 05:00:00','PEACH BOTTOM','ELMARA',7unionselect '02/01/2012 05:00:00','PEACH BOTTOM','ELMARA',10unionselect '02/02/2012 05:00:00','PEACH BOTTOM','ELMARA',9unionselect '02/03/2012 05:00:00','PEACH BOTTOM','ELMARA',6unionselect '02/04/2012 05:00:00','PEACH BOTTOM','ELMARA',-9unionselect '02/05/2012 05:00:00','PEACH BOTTOM','ELMARA',-74unionselect '02/06/2012 05:00:00','PEACH BOTTOM','ELMARA',6unionselect '02/07/2012 05:00:00','PEACH BOTTOM','ELMARA',3unionselect '02/08/2012 05:00:00','PEACH BOTTOM','ELMARA',34unionselect '02/09/2012 05:00:00','PEACH BOTTOM','ELMARA',-54unionselect '02/10/2012 05:00:00','PEACH BOTTOM','ELMARA',-41unionselect '02/11/2012 05:00:00','PEACH BOTTOM','ELMARA',-35unionselect '02/12/2012 05:00:00','PEACH BOTTOM','ELMARA',100
Select N.Source, N.Sink, N.TimePoint, D.TPHour, AVG(Delta)as MA20 From dbo.TestNode Ninner join dbo.TestDate DOn N.Timepoint = D.TimePoint inner Join Dbo.TestNode N2on N.Source = N2.Source and N.Sink = N2.Source and D.TPHour = D2.TPHour and D2.TPIntDate <= D.TPIntDate and D2.TPIntDate >= D.TPIntDate - 20inner join dbo.TestDate D2On N2.TimePoint = D2.TimePointGroup by N.Source, N.Sink, N.TimePoint, D.TPHour
SELECT a.Sink, a.[Source], a.TimePoint, [20DayAvg]=AVG(a.Delta)FROM TestNode aINNER JOIN TestNode b ON a.Sink = b.Sink AND a.[Source] = b.[Source] AND b.Timepoint BETWEEN a.TimePoint - 19 AND a.TimePointGROUP BY a.Sink, a.[Source], a.TimePointHAVING COUNT(*) = 20ORDER BY a.[Sink], a.[Source], a.TimePoint
--union--select '01/27/2012 05:00:00','PEACH BOTTOM','ELMARA',7--select '02/06/2012 05:00:00','PEACH BOTTOM','ELMARA',6--union--select '02/10/2012 05:00:00','PEACH BOTTOM','ELMARA',-41--unionSELECT a.Sink, a.[Source], a.TimePoint, [20DayAvg]=AVG(a.Delta)FROM TestNode aINNER JOIN TestDate b ON -- a.Sink = b.Sink AND a.[Source] = b.[Source] AND b.Timepoint BETWEEN a.TimePoint - 19 AND a.TimePointGROUP BY a.Sink, a.[Source], a.TimePointHAVING COUNT(*) = 20ORDER BY a.[Sink], a.[Source], a.TimePoint