日期:2014-05-18  浏览次数:20590 次

T-SQL中查询所有雇员的名字及上级名字
create table emp
(
emp_id 雇员ID,主键
fname frist name
lname last name
dept 部门ID
mid 上级ID
sal 薪水
date 雇用日期
jobid 工作ID

)

查询所有雇员的名字及上级名字 ??

各位大虾帮帮忙,3Q 3Q !!!



------解决方案--------------------
SQL code
select
    雇员=a.lastname+a.firstname,
    上级=b.lastname+b.firstname
from
    emp a
left join
    emp b
    on a.mid=a.emp_id

------解决方案--------------------
SQL code
select 
a.fname,a.lname,
isnull(b.fname,'') 上级fname ,isnull(b.lname) 上级lname
 from emp a
left join emp b on a.mid=b.emp_id

------解决方案--------------------
SQL code
 
--假设只取直属上级,如果取所有的上级,要用循环或递归了
select
xiaji.fname+' '+xiaji.lname as 员工名称,
isnull((select top 1 shangji.fname+' '+shangji.lname from emp shangji where shangji.emp_id=xiaji.mid),'无') as 上属名称
from emp xiaji

------解决方案--------------------
引用楼主 peng0622 的帖子:
create table emp
(
emp_id 雇员ID,主键
fname frist name
lname last name
dept 部门ID
mid 上级ID
sal 薪水
date 雇用日期
jobid 工作ID
)
查询所有雇员的名字及上级名字 ??
各位大虾帮帮忙,3Q 3Q !!!