如何挑出漏掉的日期,这句sql怎么写

didoleo 2004-11-12 10:12:47
假如有

rq

2002-10-01
2002-10-02
2002-10-03
2002-10-05
2002-10-06

怎么挑出 2002-10-04这个漏掉的日期


...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
alipaymate 2005-01-25
  • 打赏
  • 举报
回复
up
pbsql 2004-11-12
  • 打赏
  • 举报
回复
那样是不行的

产生一个最小日期到最大日期的临时表(每天一条记录),然后取出不在你那个表中rq就是了
zjcxc 2004-11-12
  • 打赏
  • 举报
回复
掉两天就存在补记录的问题,用一个简单的语句是做不出来的.
davorsuker39 2004-11-12
  • 打赏
  • 举报
回复
select rq=dateadd(day,1,rq) from 表 a
where not exists(
select * from 表 where datediff(day,a.rq,rq)=1)
didoleo 2004-11-12
  • 打赏
  • 举报
回复
zjcxc(邹建) 回答的最好,不知道如果当中连着断掉两天这句行的通吗?我实验了一下,好象不行。
Dreamnest 2004-11-12
  • 打赏
  • 举报
回复
不知这样是否可以,
假如你现在的表为(表1)
别建一个包括全部月份日期的表(表2),

select * from 表2 where 表2.日期 not in (select 表1.日期 from 表1)
xingfuniao 2004-11-12
  • 打赏
  • 举报
回复
select rq
from table1
where right(rq,2) not in ('01','02','03','04','05','06','07','08','09','10','11','12')
lsxaa 2004-11-12
  • 打赏
  • 举报
回复
select '2002-10-'+a.col
from (select '01' as col union all
select '02' as col union all
--...
select '31' as col
) a
where a.col not in(select rq from t)
zjcxc 2004-11-12
  • 打赏
  • 举报
回复
select rq=dateadd(day,1,rq) from 表 a
where not exists(
select * from 表 where datediff(day,a.rq,rq)=1)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧