2012-08-28 42 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

谢谢Much..it工作 – 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

很好的答案!谢谢。 –

相关问题