-2

テーブルがproductあり、数量の合計を取得したいのはさまざまな状態です

これが私のテーブルです...

kind|  qty  
1   |  150
8   |  122
1   |  177
3   |  60
8   |  66
...

このステートメントを取得するにはどうすればよいですか

select sum(qty) when kind=1, sum(qty) when kind=8, sum(qty) when kind=3, 
sum1+sum2-sum3 from mytable

SQLのこのステートメントから計算フィールドを取得したい最後の行

sum1+sum2-sum3 from mytable

結果は次のようになります

sum1 , sum2, sum3, calc
4

3 に答える 3

2
SELECT  kind1, kind8, kind3, (kind1 + kind8 - kind3) totalResult
FROM
(
    SELECT  SUM(CASE WHEN kind = 1 THEN qty ELSE 0 END) kind1,
            SUM(CASE WHEN kind = 8 THEN qty ELSE 0 END) kind8,
            SUM(CASE WHEN kind = 3 THEN qty ELSE 0 END) kind3
    FROM tableName
) x

SQLFiddle デモ

于 2012-10-22T11:34:46.190 に答える
1
select
    sum(case when kind in (1) then qty else 0 end) as sum1,
    sum(case when kind in (8) then qty else 0 end) as sum2,
    sum(case when kind in (3) then qty else 0 end) as sum3,
    sum(case when kind in (1, 8) then qty else -qty end) as calc
from mytable
where kind in (1, 3, 8)
于 2012-10-22T11:34:19.217 に答える
0

次のように実行できます。

SELECT 
sum(CASE kind WHEN 1 THEN qty ELSE 0 END) kind1, 
sum(CASE kind WHEN 0 THEN qty ELSE 0 END) kind8, 
sum(CASE kind WHEN 3 THEN qty ELSE 0 END) kind3, 
sum(CASE kind WHEN 1 THEN qty ELSE 0 END) 
+ sum(CASE kind WHEN 0 THEN qty ELSE 0 END) 
+ sum(CASE kind WHEN 3 THEN qty ELSE 0 END) Total, 
FROM 
    mytable
于 2012-10-22T11:35:53.140 に答える