Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95836
  • 博文数量: 39
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 405
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-25 09:25
文章分类

全部博文(39)

文章存档

2011年(1)

2010年(5)

2009年(4)

2008年(29)

我的朋友
最近访客

分类: 数据库开发技术

2010-03-16 16:40:38

最近做一个小工作,为公司销售队伍分配旧的保单,孤儿单分配给对应的增援者。主要工作是从tmp_gx_ag里面寻找对应人员的增员者,如果该增员者为辞退,则找增员者的增员者,简单来说就是一个递归关系。代码如下:

;
with zyCTE(ag_code,zy_code,state)
as
(
 select b.ag_code,b.zy_code,b.state
 from tmp_gx_ag as b
 where b.ag_code = '44010000001834' --递归结束,可用@ag_code变量代替
 union all
 select d.ag_code,d.zy_code,d.state
 from zyCTE as c inner join tmp_gx_ag as d on d.ag_code = c.zy_code
)
select top(1)*  --返回血缘关系最近的增员者
from zyCTE
where state = '聘用'


阅读(394) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~