来自不同视图的T SQL Sum

时间:2010-11-19 12:27:37

标签: sql-server sum

我有3个名为vQuestion1,vQuestion2,vQuestion3的视图。每个列都有2列,名为Outcome和Total。

“结果”列可以包含许多值,例如“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 / A.

1 个答案:

答案 0 :(得分: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