我有下面的数据:
客户号 还款日期
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怎么实现呢
客户号 还款日期
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怎么实现呢
解决方案 »
- PL.SQL.Developer怎么远程连接oracle服务器
- sqlplus Oracle 的远程实例
- oracle有没有可以赋值的变量?
- oracle 的数据库是否只是可以建立一个
- 大问题:函数被锁了,听过吗?
- 在ORACLE 10g中怎么控制指定用户只能访问指定数据表?
- 分析一下这个ORA-01747: invalid user.table.column, table.column, or column specification
- 这个查询函数那里不对
- oracle imp 和 exp 紧急求助????????
- oracle 存储过程调用webservice 取不到返回的参数
- 存储过程,增加一个输出的字符型参数XX(out类型)
- 存储过程哪错了
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.客户号
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.客户号