2012-09-20 45 views
1

我在表格中有两列列#1varchar(MAX)而列#2是int单列不同条件的总和

列#2我有我的选择查询在一列和另一列负项的总和我想正元素的总和阴性和阳性项

要做到这一点我做

SELECT SUM(atbl.M),SUM(atbl.p)  
from (select M=case when column#2<0 
        then column#2 else 0 end, 
      P=case when column#2 > 0 
        then column#2 else 0 end 
     from testTable) atbl 

select SUM(case when column#2<0 then column#2 else 0 end) as M 
     ,SUM(case when column#2 > 0 then column#2 else 0 end) as P 
from testTable 

有没有更好的方式来实现这一目标。

+1

无 - 有没有更好的办法。我更喜欢你的第二个查询。 – Bohemian

回答

1

如果你做到这一点经常在该列然后使用一个观点:

create view testView as 
select 
    sum(case when column#2 < 0 then column#2 else 0 end) as M, 
    sum(case when column#2 > 0 then column#2 else 0 end) as P 
from testTable