2010-11-19 6 views
0

Ich habe 3 Ansichten namens vQuestion1, vQuestion2, vQuestion3. Jeder hat 2 Spalten mit dem Namen Ergebnis und Gesamt.T SQL Summe aus separaten Ansichten

Die Outcome-Spalte kann eine Reihe von Werten wie "N/A", "Verbessert", "Nicht verbessert" haben. Jedes Ergebnis hat eine Gesamtpunktzahl.

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 

Ich brauche ein Ergebnis zu schaffen, in dem die Summen addiert werden um ein Ergebnis zu erzeugen, wie folgt:

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

Bitte beachten Sie, dass nicht alle Antworten in jeder Frage gibt, dh Question2 nicht über N /EIN.

Antwort

1

zuerst eine UNION ALL tun und dann eine SUM

So etwas wie

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 

Oder

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

Dank Astander, habe ich Ihr zweites Beispiel und es funktionierte erstes Mal! Sehr geschätzt. – Mitch