韩国青龙奖2017红地毯:看看这段sql server语言,偶不太明白,大吓帮帮忙,先谢过.

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 05:02:30
特别是那第二段,糊涂....

--查询每位员工的经理是谁【【这个不太懂】】
select id,'的经理是:'as 经理,姓名
into #temp
from 公司 join 职工
on 公司.经理=职工.职工号

select a.姓名,'的经理是:',b.姓名
from 职工 a,#temp b
where a.分公司=b.id
and a.姓名<>b.姓名

select id,'的经理是:'as 经理,姓名
into #temp
from 公司 join 职工
on 公司.经理=职工.职工号

的作用是选择出该公司的经理名字及公司的ID存到#Temp表中。“职工号”对于每个职工是唯一,字段“公司.经理”存储的也是一个职工号,该字段表明他是该公司的经理,明显这个公司的经理只有一个。

select a.姓名,'的经理是:',b.姓名
from 职工 a,#temp b
where a.分公司=b.id
and a.姓名<>b.姓名

用公司ID指示出属于该公司的员工该属于哪个经理“a,b”分别是“职工”“#temp”表的别名,字段“a.分公司”是公司ID,用他与刚才查询出来的公司ID比较,就知道该人是不是该公司的,“a.姓名<>b.姓名”是为了排除自己是自己的这种不符合日常逻辑的记录出现。

第二段:
“from 职工 a, #temp b”就是给职工表和临时的一个表#temp又分别起了个别名分别为a和b
“where a.分公司=b.id and a.姓名<>b.姓名”是一个选择判断条件,意思是职工表的分公司要和公司表的id字段相等,而且职工姓名要和公司姓名不等,时间原因,下次再说啊,我们下课了

员工经理是边个!

查询每位员工里是经理的是谁