遇到一个查缺数的 SQL语句查询问题
表ABC
字段:
id time anli
1 2013/1/29 14:20:00 10
2 2013/1/29 14:25:00 40
3 2013/1/29 14:30:00 15
4 2013/1/29 14:35:00 10
5 2013/1/29 14:45:00 11
6 2013/1/29 15:05:00 36
现在的情况是anli的值是5分钟一个数据自动入库的,但是他中间有的时候会丢失数据,比如第4条到第5条之间缺一条时间为2013/1/29 14:40:00的数据 第5条到第6条间缺3条数据时间分别为 2013/1/29 14:50:00 ,2013/1/29 14:55:00,2013/1/29 15:00:00,现在用我的想法是用SQL语句查出这里缺的数据时间并显示出来 比如 查出的结果:
缺的数据
2013/1/29 14:40:00
2013/1/29 14:50:00
2013/1/29 14:55:00
2013/1/29 15:00:00
请高手帮忙,我是VB弄的小程序来查的,但是弄到这里就不懂了
------解决方案--------------------加到红字的部分;WITH cte AS (
SELECT number,DATEADD(mi,number*5,(SELECT MIN([time])mtime FROM huang WHERE
senid=XXXXX))[time]
FROM master.dbo.spt_values a
WHERE a.number BETWEEN 1 AND 120 AND a.[type]='p'--120是一个小时12次5分钟,我定了检查10个小时,如果你要检查久一点,就再增大一点
)
SELECT [time] FROM cte
WHERE [time]<=(SELECT max([time]) FROM huang)
EXCEPT
SELECT [time] FROM huang a