2014-03-06 4 views
0

4 개 테이블에서 보고서를 생성하고 싶습니다. 어떻게해야하는지 알 수 없습니다. 프론트 엔드에 SQL Server 2008 R2 및 asp.net을 사용하고 있습니다.4 개 테이블에서 값을 얻는 방법

[표 1] ---> ----> 2,013

------------------------------ 
Division totalPrograms 
------------------------------ 
EDD-COA   12 
EDD-EDSD    1 
EDD-EOA   9 
EDD-SOA   7 
EDD-WOA   12 

---- 표 4> 2,012

------------------------------ 
Division totalPrograms 
------------------------------ 
EDD-COA   24 
EDD-EDSD    3 
EDD-EOA   14 
EDD-SOA   7 
EDD-WOA   11 

표 3 2,014

----------------------------- 
Division totalPrograms 
----------------------------- 
EDD-COA   3 
EDD-EDSD   2 
EDD-EOA   6 
EDD-SOA   2 
EDD-WOA   3 

표 2 - -> 2011 (참고 : EDD-SOA는이 표에 없습니다)

>> ---->

--------------------------------------------- 
Division 2014 2013 2012 2011 
--------------------------------------------- 
EDD-COA 3 24 12 2 
EDD-EDSD 2 3 1 1 
EDD-EOA 6 14 9 3 
EDD-SOA  2  7  7  0 
EDD-WOA 3 11 12 3 

하지만 마지막 테이블로 EDD-SOA 행의 값을 원하지만 내가 나를 인도 호야 뭔가가 있어요 ..

:3210

최종 결과는해야한다

답변

0
SELECT a.Division as 'Division', 
(case when a.totalPrograms is null then '0' else a.totalPrograms 
end) '2014', 
(case when b.totalPrograms is null then '0' else b.totalPrograms 
end) '2013', 
(case when c.totalPrograms is null then '0' else c.totalPrograms 
end) '2012', 
(case when d.totalPrograms is null then '0' else d.totalPrograms 
end) '2011' 
from Table1 a FULL JOIN Table2 b 
ON a.Division = b.Division 
FULL JOIN Table3 c 
ON a.Division = c.Division AND b.Division = c.Division 
FULL JOIN Table4 d 
ON a.Division = d.Division AND b.Division = d.Division AND c.Division = d.Division 

출력 :

DIVISION 2014 2013 2012 2011 
EDD-COA  3 24 12 2 
EDD-EDSD 2 3 1 1 
EDD-EOA  6 14 9 3 
EDD-SOA  2 7 7 0 
EDD-WOA  3 11 12 3 
+0

는 구문 오류 – user2139057

+0

을 받고 무슨 오류가 있습니까? – Avt

+0

작동했지만 솔루션이 향상되었습니다. 여기에서 테스트해볼 수 있습니다 http://sqlfiddle.com/#!2/f01bf/3 – Avt

관련 문제