我有一张表,每个连续的小时记录一次。每个小时都有一定的价值。我想要一个T-SQL查询来检索缺失的记录(缺少小时,缺口)。因此,对于下面的DDL,我应该得到一个失踪时间04/01/2010 02:00 AM的记录(假定日期范围介于第一个和最后一个记录之间)。使用SQL Server 2005.倾向于基于集合的查询。使用SQL查找数据库记录中的间隙(缺失记录)
DDL:
CREATE TABLE [Readings](
[StartDate] [datetime] NOT NULL,
[SomeValue] [int] NOT NULL
)
INSERT INTO [Readings]([StartDate], [SomeValue])
SELECT '20100401 00:00:00.000', 2 UNION ALL
SELECT '20100401 01:00:00.000', 3 UNION ALL
SELECT '20100401 03:00:00.000', 45
OMG ....这是惊人的,以你如何快速写了这个。就是棒。 – Raja 2010-04-22 18:03:11
我不能上下投票这是因为我看着这个sql去.. gaaaaahhahahaaaa – 2010-04-22 18:06:55
这是一个甜蜜的查询。我从来没有意识到可以递归地使用WITH。 – RedFilter 2010-04-22 18:23:20