我有下面的数据:
  客户号     还款日期
  000001       2010/01/31
  000001       2010/02/28
  000001       2010/03/31
  000001       2010/05/31
  000001       2010/06/30
  000001       2010/08/31
  000002       2010/01/31
  000002       2010/03/31
  000002       2010/04/30
  000002       2010/05/31
  000002       2010/06/30
  000002       2010/07/31
  ......
  还款日期在理论上来说应该是每个客户每个月一次。
我想得到的是
  客户号    连续还款期数
  000001      3
  000002      5
........
用SQL怎么实现呢

解决方案 »

  1.   

    select 客户号,sum(还款日期)  from 表 group by 客户号;连续还款期数是什么样的业务理解呢?请问以上提供的数据是否对应?
      

  2.   

    LZ 你说说的连续还款日期中的连续怎么理解,定义这样看看能不能实现select 客户号,count(客户号) from 表 group by 客户号。
      

  3.   

    with tp as (
    select 客户号,convert(varchar(7),还款日期,120)+'-01' as date  from tb order by 客户号 date
    ),tp1 as (
    select a.客户号,a.date from tp a join tb b on  a.客户号=b.客户号 and datediff(month,a.date,b.date)=1
    )
    select a.客户号,count(0) 连续还款期数 from tp1 a group by a.客户号
      

  4.   


    SELECT A.客户号, COUNT(1) 连续还款期数
      FROM (SELECT A.客户号, A.还款日期
              FROM 记录表 A, 记录表B
             WHERE A.客户号 = B.客户号
               AND TRUNC(ADD_MONTHS(A.还款日期, 1), 'MM') = TRUNC(B.还款日期, 'MM')) A
     GROUP BY A.客户号