declare @temptable table(datecol date)insert into @temptableselect * from( values ('10/28/2012'), ('10/28/2012'), ('10/28/2012'), ('10/28/2012'), ('10/28/2012'), ('10/28/2012'))a (datecol)select dateadd(MI,ROW_NUMBER() over (order by datecol)-1,CONVERT(Datetime,datecol)) as DateTimecolfrom@temptable
;WITH Dates AS ( SELECT MyDate FROM ( VALUES ('2012-10-28'),('2012-10-29'),('2012-10-30')) a (MyDate)), Tally (n) AS ( SELECT TOP (1440) ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) FROM (VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) t1 (n1) CROSS JOIN (VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) t2 (n2) CROSS JOIN (VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) t3 (n3) CROSS JOIN (VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) t4 (n4))SELECT MyDate, DateWithMinute=DATEADD(minute, n, MyDate)FROM DatesCROSS APPLY TallyORDER BY DATEADD(minute, n, MyDate)
SELECT SourceHub, SnapshotMinute = DATEADD(mi,t.N,SnapshotDate), NetworkName, QOSGroup, CountOfRemotes, SumOfTX, SumOfRX FROM ConfigurationSnapshot cs CROSS JOIN dbo.Tally0 t WHERE t.Number < 1440;
--===== Do this in a nice safe place that everyone has USE TempDB; IF OBJECT_ID('TempDB..Tally0','U') IS NOT NULL DROP TABLE Tally0;GO--===================================================================-- Create a Tally table from 0 to 11000--===================================================================--===== Create and populate the Tally table on the fly. SELECT TOP 11001 IDENTITY(INT,0,1) AS N INTO dbo.Tally0 FROM Master.sys.ALL_Columns ac1 CROSS JOIN Master.sys.ALL_Columns ac2;--===== Add a CLUSTERED Primary Key to maximize performance ALTER TABLE dbo.Tally0 ADD CONSTRAINT PK_Tally0_N PRIMARY KEY CLUSTERED (N) WITH FILLFACTOR = 100;--===== Allow the general public to use it GRANT SELECT ON dbo.Tally0 TO PUBLIC;GO