1

私のテーブルには2つの列がありますcolum#1 isvarchar(MAX)と column#2 is int.

列#2には、負のエントリと正のエントリがあります。選択クエリの1つの列に正のエントリの合計と、他の列に負のエントリの合計が必要です

これを達成するために私はした

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

これを達成するためのより良い方法はありますか。

4

1 に答える 1

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
于 2012-09-20T12:24:15.327 に答える