首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL递归查询级联多表的有关问题,

2012-03-17 
SQL递归查询级联多表的问题,求救...三张表:dep(部门)分别有字段dep_iddep_namedep_up_id1技术部02市场部03

SQL递归查询级联多表的问题,求救...
三张表:
dep(部门)分别有字段
dep_id       dep_name     dep_up_id
1                   技术部               0
2                   市场部               0
3                 南岸市场             2
4                     南平                 3
5                   经开区               3

users(人员表)分别有字段
users_id       real_name       dep_id
1                           小李                 3
2                           小王                 4
3                           小张                 5

salary(工资表)分别有字段
salary_id         jiben           jintie       users_id       dep_id
1                           200                 100                 1                   3
2                           500                 100                 2                   4
3                           400                 100                 3                   5

问题:   当我在一个文本框里输入南岸市场的时候我需要在griview   or   DataGrid里显示出:
南岸市场       小李         200         100
南平               小王         500         100
经开区           小张         400         100

也就是说将父级的所有子级遍历出来然后还需要级联上两张表.
参考:
with   downdep(dep_id,dep_name,dep_up_id)  
AS  
(select   dep_id,dep_name,dep_up_id   from   dep   where   dep_name   like   '%南岸% '  
union   all  
select   a.dep_id,a.dep_name,a.dep_up_id   from   dep   A   inner   join   downdep   up   ON(A.dep_up_id=up.dep_id))  
select   *   from   downdep

这个递归查询结果为:
3         南岸市场       2
4             南平           3
5           经开区         3

我现在想再加上那两张表进去。恳求各位大侠的支持与帮助。


[解决办法]
with downdep(dep_id,dep_name,dep_up_id)
AS
(select dep_id,dep_name,dep_up_id from dep where dep_name like '%南岸% '
union all
select a.dep_id,a.dep_name,a.dep_up_id from dep A inner join downdep up ON(A.dep_up_id=up.dep_id))
select downdep.dep_name,users.real_name,salary.jiben,salary.jintie from downdep,salary,users where downdep.dep_id=salary.dep_id and salary.users_id = users.users_id

热点排行