3

这是表格:

ID     TYPE     AMOUNT
--     ----     ------
 1     sell         50
 1     sell        100
 1      buy        200
 2     sell         50
 2      buy        100

如何编写返回以下结果的 SQL 查询:

ID    TOTAL
--    -----
 1       50
 2       50

我想我需要一个group by id但不确定如何对“卖出”的做“减法”。

我的数据库是甲骨文,顺便说一句。

感谢和问候

4

2 回答 2

2

答案很简单。

SELECT id, SUM(
       CASE type
         WHEN 'Buy' THEN amount
         WHEN 'Sell' THEN -amount
       END
       ) AS TOTAL
FROM tbl
GROUP BY id
于 2013-02-07T05:21:27.700 回答
1

这应该工作,

select "id",sum(decode(type,'sell',-"amount","amount")) total
from table1
group by "id"

SQL 提琴输出

于 2013-02-07T05:19:50.080 回答