1

如何将三个查询的结果合并到一个数据集中?交叉申请还是加入?

create table tbl_A
(
Dept varchar(5),
DocCountA int
);

create table tbl_b
(
Dept varchar(5),
DocCountB int
);

create table tbl_c
(
Dept varchar(5),
DocCountC int
);

insert into tbl_A
values ('XX',12),('YY',14),('ZZ',16)

insert into tbl_b
values ('XX',20),('YY',25),('ZZ',27)

insert into tbl_c
values ('XX',30),('YY',35)

select * from tbl_A  
select * from tbl_B  
select * from tbl_C  

**tbl_A**  
Dept    DocCountA  
XX  12  
YY  14  
ZZ  16  


**tbl_B**  
Dept    DocCountB  
XX  20   
YY  25    
ZZ  27  

**tbl_C**  
Dept    DocCountC  
XX  30    
YY  35  

结果

Dept DocCountA DocCountB DocCountC  
XX  
YY  
ZZ    

表 C 有两个结果 ZZ 将为空白

这使用两个查询 三个会很棒!

select * from tbl_A A
cross apply
(
select B.DocCountB from tbl_b B
Where B.Dept=A.Dept
) sod

4

1 回答 1

2

每个表上的左连接将允许您获取所有 3 个部门和计数(如果存在)。

select
  a.dept, DocCountA, DocCountB, DocCountC
from
  tbl_a a
  left join tbl_b b on a.dept = b.dept
  left join tbl_c c on a.dept = c.dept

这是一个工作小提琴

于 2014-11-12T22:00:58.927 回答