Reputation: 2551
I have 3 Views called vQuestion1, vQuestion2, vQuestion3. Each has 2 columns called Outcome and Total.
The Outcome column can have a number of values such as "N/A", "Improved", "Not Improved". Each Outcome has a total score.
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
I need to create a result where the totals are added together to create a result as follows:
Total Answers
Outcome Total
N/A 17
Improved 33
Not Improved 24
Please note that not all answers exist in each question, ie Question2 does not have N/A.
Upvotes: 0
Views: 150
Reputation: 166396
First do a UNION ALL
and then a SUM
Something like
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
Or
SELECT Outcome,
SUM(Total) Total
FROM (
SELECT *
FROM vQuestion1
UNION ALL
SELECT *
FROM vQuestion2
UNION ALL
SELECT *
FROM vQuestion3
) Vals
GROUP BY Outcome
Upvotes: 1