当前位置: 代码迷 >> Sql Server >> 同一个存储过程中如何把两个不同条件查询的值再相加
  详细解决方案

同一个存储过程中如何把两个不同条件查询的值再相加

热度:78   发布时间:2016-04-27 14:54:11.0
同一个存储过程中怎么把两个不同条件查询的值再相加
SQL code
ALTER PROCEDURE dbo.StockCount    (    @CompanyID int = 5    )AS    Begin    SELECT         SUM(CASE WHEN TypeID=1 THEN m8 ELSE -m8 END) AS m8,        SUM(CASE WHEN TypeID=1 THEN m9 ELSE -m9 END) AS m9,        SUM(CASE WHEN TypeID=1 THEN m10 ELSE -m10 END) AS m10,        SUM(CASE WHEN TypeID=1 THEN m11 ELSE -m11 END) AS m11,        SUM(CASE WHEN TypeID=1 THEN m12 ELSE -m12 END) AS m12,        SUM(CASE WHEN TypeID=1 THEN m13 ELSE -m13 END) AS m13,        SUM(CASE WHEN TypeID=1 THEN m14 ELSE -m14 END) AS m14,        SUM(CASE WHEN TypeID=1 THEN m15 ELSE -m15 END) AS m15,        SUM(CASE WHEN TypeID=1 THEN m16 ELSE -m16 END) AS m16    FROM RLStock    where Status in(1,2) and [email protected]    -----------    SELECT         SUM(m8) AS m8,        SUM(m9) AS m9,        SUM(m10) AS m10,        SUM(m11) AS m11,        SUM(m12) AS m12,        SUM(m13) AS m13,        SUM(m14) AS m14,        SUM(m15) AS m15,        SUM(m16) AS m16        FROM RLStock    where Status=4 and TypeID=3 and [email protected]    END

这两个查询的结果怎么再对应列再相加起来?

------解决方案--------------------
相加?
是这样么:
SQL code
select sum(m8)m8,sum(m9)m9,sum(m10)m10,sum(m11)m11,sum(m12)m12,sum(m13)m13,sum(m14)m14,sum(m15)m15,sum(m16)m16from(    SELECT         SUM(CASE WHEN TypeID=1 THEN m8 ELSE -m8 END) AS m8,        SUM(CASE WHEN TypeID=1 THEN m9 ELSE -m9 END) AS m9,        SUM(CASE WHEN TypeID=1 THEN m10 ELSE -m10 END) AS m10,        SUM(CASE WHEN TypeID=1 THEN m11 ELSE -m11 END) AS m11,        SUM(CASE WHEN TypeID=1 THEN m12 ELSE -m12 END) AS m12,        SUM(CASE WHEN TypeID=1 THEN m13 ELSE -m13 END) AS m13,        SUM(CASE WHEN TypeID=1 THEN m14 ELSE -m14 END) AS m14,        SUM(CASE WHEN TypeID=1 THEN m15 ELSE -m15 END) AS m15,        SUM(CASE WHEN TypeID=1 THEN m16 ELSE -m16 END) AS m16    FROM RLStock    where Status in(1,2) and [email protected]  union all    SELECT         SUM(m8) AS m8,        SUM(m9) AS m9,        SUM(m10) AS m10,        SUM(m11) AS m11,        SUM(m12) AS m12,        SUM(m13) AS m13,        SUM(m14) AS m14,        SUM(m15) AS m15,        SUM(m16) AS m16        FROM RLStock    where Status=4 and TypeID=3 and [email protected])t    END
  相关解决方案