2010-11-19 63 views
0

我有3個視圖叫做vQuestion1,vQuestion2,vQuestion3。每個都有2列稱爲成果和總。從不同的視圖T SQL總和

結果欄可以包含許多值,如「N/A」,「改進」,「未改進」。每個結果都有一個總分。

vQuestion1    vQuestion2    vQuestion3 
Outcome  Total  Outcome  Total  Outcome  Total 
N/A   12   Improved  10  N/A   5 
Improved  10   Not Improved 20  Improved 13 
Not Improved 4 

我需要創造一個總計一起加入如下方式創建結果的結果:

Total Answers 
Outcome  Total 
N/A   17 
Improved  33 
Not Improved 24 

請注意,在每個問題的存在不是所有的答案,即問題2沒有N /一個。

回答

1

首先做一個UNION ALL然後SUM

喜歡的東西

SqlServer的2005+

;WITH Vals AS (
     SELECT * 
     FROM vQuestion1 
     UNION ALL 
     SELECT * 
     FROM vQuestion2 
     UNION ALL 
     SELECT * 
     FROM vQuestion3 
) 
SELECT Outcome, 
     SUM(Total) Total 
FROM Vals 
GROUP BY Outcome 

或者

SELECT Outcome, 
     SUM(Total) Total 
FROM (
      SELECT * 
      FROM vQuestion1 
      UNION ALL 
      SELECT * 
      FROM vQuestion2 
      UNION ALL 
      SELECT * 
      FROM vQuestion3 
     ) Vals 
GROUP BY Outcome 
+0

感謝Astander,我用你的第二個例子,它的工作第一次!非常感激。 – Mitch 2010-11-19 13:02:03