Oracle查询连续5个月记录的实现方法
Oracle查询方式多种多样,下面为您介绍的Oracle查询方法实现的是连续时间段内记录的实现方法,希望可以让您对Oracle查询有更多的认识。

创新互联是一家专业提供锦州企业网站建设,专注与网站设计、网站制作、成都h5网站建设、小程序制作等业务。10年已为锦州众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
表结构如下 
 姓名 日期 ... 
 a 200101 
 a 200102 
 a 200103 
 a 200104 
 a 200105 
 a 200401 
 a 200403 
 a 200404 
 a 200405 
 c 200901 
 c 200902 
 b 200301 
 b 200304 
 b 200801 
 b 200802 
 b 200803 
 b 200804 
 b 200805 
 现在需要找出连续5个月都有记录的人员和开始日期及结束日期,例如a从200101-200105和b从200801-200805
- SELECT 姓名, Start_HM, End_HM FROM(
- SELECT b.姓名, MIN (b.日期) Start_HM, MAX (b.日期) End_HM
- FROM (SELECT a.*, ADD_MONTHS(a.日期, ROWNUM * (-1)) cc
- FROM (SELECT *
- FROM t
- ORDER BY 姓名, 日期
- ) a
- ) b
- GROUP BY b.姓名, b.cc)
- WHERE MONTHS_BETWEEN(End_HM,Start_HM) >= 4;
当前文章:Oracle查询连续5个月记录的实现方法
URL分享:http://jxruijie.cn/article/ccohejs.html

 
                