求一个SQL的问题

wusenet041 2011-04-28 09:14:05
我有下面的数据:
客户号 还款日期
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怎么实现呢
...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wusenet041 2011-04-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hackerhope 的回复:]
select 客户号,sum(还款日期) from 表 group by 客户号;

连续还款期数是什么样的业务理解呢?请问以上提供的数据是否对应?
[/Quote]
连续还款期数 就是 如果他1月份,2月份,3月份还了 ,4月份没还,5月份,6月份还了 那么他的最大连续还款期数就是 3期~
ssqtjffcu 2011-04-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wusenet041 的回复:]
引用 1 楼 hackerhope 的回复:
select 客户号,sum(还款日期) from 表 group by 客户号;

连续还款期数是什么样的业务理解呢?请问以上提供的数据是否对应?

连续还款期数 就是 如果他1月份,2月份,3月份还了 ,4月份没还,5月份,6月份还了 那么他的最大连续还款期数就是 3期~
[/Quote]
那你问问题的时候不会说求最大连续还款数啊?
真服了这些问问题的人!!!
Liangao 2011-04-29
  • 打赏
  • 举报
回复

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.客户号
kingtiy 2011-04-28
  • 打赏
  • 举报
回复
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.客户号
asggadfgadfg 2011-04-28
  • 打赏
  • 举报
回复
LZ 你说说的连续还款日期中的连续怎么理解,定义

这样看看能不能实现

select 客户号,count(客户号) from 表 group by 客户号。
hackerhope 2011-04-28
  • 打赏
  • 举报
回复
select 客户号,sum(还款日期) from 表 group by 客户号;

连续还款期数是什么样的业务理解呢?请问以上提供的数据是否对应?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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