2012-08-28 2 views
1

하나의 단일 보고서를 생성하기 위해 같은 테이블에서 세 가지 쿼리의 결과를 합산하려고합니다. 각 쿼리에서같은 테이블에서 세 가지 다른 쿼리의 결과를 합산하는 방법

SELECT b.BG_SEVERITY as Severity, count (b.BG_BUG_ID) as Total 
FROM BUG b where 
b.BG_USER_12='QA3' 
group by b.BG_SEVERITY 

SELECT s.BG_SEVERITY as Severity, count (s.BG_BUG_ID) as Total 
FROM BUG s where 
s.BG_USER_12='QA1' 
group by s.BG_SEVERITY 

SELECT a.BG_SEVERITY as Severity, count (a.BG_BUG_ID) as Total 
FROM BUG a where 
a.BG_USER_12='QA2' 
group by a.BG_SEVERITY 

결과는 다음과 같이 표시됩니다 : 나는 결합/합계까지 '총'열을 위의 세 가지 쿼리에서 찾고 있어요

Severity Total 
1-Critical 4 
2-High  94 
3-Medium 23 
4-Low  45 

. 이 작업을 수행하기 위해 SQL의 어떤 기능을 사용할 수 있습니까?

+1

답변 중 하나가 문제를 해결 한 경우 허용으로 표시하십시오. :) –

답변

1

sql-server를 사용하는 경우 union을 사용할 수 있습니다. 다음과 같이하십시오 :

SELECT 
    Severity, 
    SUM(Total) 
FROM 
    (
    SELECT b.BG_SEVERITY as Severity, count (b.BG_BUG_ID) as Total FROM BUG b where b.BG_USER_12='QA3' group by b.BG_SEVERITY 
    UNION ALL 
    SELECT s.BG_SEVERITY as Severity, count (s.BG_BUG_ID) as Total FROM BUG s where s.BG_USER_12='QA1' group by s.BG_SEVERITY  
    UNION ALL 
    SELECT a.BG_SEVERITY as Severity, count (a.BG_BUG_ID) as Total FROM BUG a where a.BG_USER_12='QA2' group by a.BG_SEVERITY 
    ) tbl 
GROUP BY 
    Severity 
+0

고마워요. .. 근무했습니다 – vnai

1

조건에 IN을 사용할 수 있습니다.

SELECT b.BG_SEVERITY as Severity, 
     COUNT(b.BG_BUG_ID) as Total 
FROM  BUG b 
WHERE b.BG_USER_12 IN ('QA3','QA1','QA2') 
GROUP BY b.BG_SEVERITY 
+0

좋은 답변! 고맙습니다. –