1

3 つのクエリの結果を 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 には 2 つの結果があります ZZ は空白になります

これは 2 つのクエリを使用して機能し ます。

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 に答える