2

列の正味合計を計算する必要があります。単純に聞こえます。問題は、別の列にマークされているように、一部の値が負でなければならないことです。たとえば、次の表では、(4+3-5+2-2 = 2) という結果が得られます。select 句でサブクエリを使用してこれを実行しようとしましたが、テーブルの他の部分の分析を追加し始めると、必要以上に複雑で拡張が困難に思えます。どんな助けでも大歓迎です!

Sign     Value
Pos        4
Pos        3
Neg        5
Pos        2
Neg        2
4

4 に答える 4

6

ステートメントの使用はCASE、SQL のほとんどのバージョンで機能するはずです。

SELECT SUM( CASE
               WHEN t.Sign = 'Pos' THEN t.Value
               ELSE t.Value * -1
            END
          ) AS Total
FROM YourTable AS t
于 2012-06-23T17:45:39.940 に答える
3

これを試して:

SELECT SUM(IF(sign = 'Pos', Value, Value * (-1))) as total FROM table
于 2012-06-23T17:40:33.863 に答える
0
select a= sum(Value) where Sign like 'pos'
select b = sum(Value) where Signe like 'neg'
select total = a-b

使用しているデータベースを指定していないため、これはSQLに依存しませんが、そこにある任意のデータベースに簡単に適応できるはずです。

于 2012-06-23T17:44:11.100 に答える