I need to Group my Table into 15 minutes Intervals. I can do that with:
select dateadd(minute, datediff(minute, 0, ts) / 15 * 15, 0), sum (goodpieces)
from Stat
Something like this might help you.
declare @startDate datetime
,@endDate datetime
set @startDate = '2011-10-25'
set @endDate = '2011-10-26'
;with fifteenMinutes
as
(
select dateadd(minute, datediff(minute, 0, @startDate) / 15 * 15, 0) as q
UNION ALL
select dateadd(minute, 15, q)
from fifteenMinutes
where q < @endDate
)
select * from fifteenMinutes
Create a table with every possible timestamp in 15 minute increments, and do a LEFT JOIN from it to your query above.
SELECT * FROM timestamps LEFT JOIN (SELECT dateadd......) ON timestamps.timestamp = StationCount.ts
If you know your chart always covers a 24 hour period, you only need to create a table with the numbers 0-95, then for each entry add it to the start time of your chart.
SELECT *
FROM (SELECT dateadd(minute, <starttime>, number*15) timestamp FROM numbers) timestamps LEFT JOIN
(SELECT dateadd......) ON timestamps.timestamp = StationCount.ts