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

SQL语句怎么写?

2012-11-20 
SQL语句如何写???表格A:OrgUnitNameManager一部a124二部b124三部c124表格B:HumanIdHumanNameIdNoManagera1

SQL语句如何写???
表格A:
OrgUnitName Manager
一部 a124  
二部 b124  
三部 c124  

表格B:
HumanId HumanName IdNo Manager
a123 李一 123a124  
a124 赵二 124a124  
a125 张三 125b124  
b124 王五 126b124  

想得到的查询结果:
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 行受影响)
**/

热点排行