SQL语句如何写???
表格A:
OrgUnitName Manager
一部 a124
二部 b124
三部 c124
表格B:
HumanId HumanName IdNo Manager
a123 李一 123 a124
a124 赵二 124 a124
a125 张三 125 b124
b124 王五 126 b124
想得到的查询结果:
IdNo HumanName HumanName Manager
123 李一 一部 赵二
124 赵二 一部 赵二
125 张三 二部 王五
126 王五 二部 王五
如何得到这个结果?
------解决方案--------------------
select b.idno,b.humanname,orgunitname,c.humanname
from A as a inner join B as b on a.manager=b.manager left join B as c on b.manager=c.humanid
------解决方案--------------------if object_id('[A]') is not null drop table [A]
go
create table [A]([OrgUnitName] varchar(4),[Manager] varchar(4))
insert [A]
select '一部','a124' union all
select '二部','b124' union all
select '三部','c124'
go
if object_id('[B]') is not null drop table [B]
go
create table [B]([HumanId] varchar(4),[HumanName] varchar(4),[IdNo] int,[Manager] varchar(4))
insert [B]
select 'a123','李一',123,'a124' union all
select 'a124','赵二',124,'a124' union all
select 'a125','张三',125,'b124' union all
select 'b124','王五',126,'b124'
go
select b.idno,b.humanname,a.orgunitname,c.humanname as manager
from b
left join a on b.manager=a.manager
left join b as c on b.manager=c.humanid
/**
idno humanname orgunitname manager
----------- --------- ----------- -------
123 李一 一部 赵二
124 赵二 一部 赵二
125 张三 二部 王五
126 王五 二部 王五
(4 行受影响)
**/