0

我是 SQL Developer 的新手。

在此处输入图像描述

我有一个类似上图的查询结果。

我想知道如何对所有值求和Flag = 1并减去所有值Flag = 2以获得总结果?

4

1 回答 1

0

在 的一点帮助下DECODE,方法如下:

SQL> with test (value, flag) as
  2    (select 100, 2 from dual union  -- sum of flag 2 values = 600
  3     select 200, 2 from dual union
  4     select 300, 2 from dual union
  5     --
  6     select 700, 1 from dual union  -- sum of flag 1 values = 1500
  7     select 800, 1 from dual
  8    )
  9  select sum(decode(flag, 1, value, 0)) sum_1,
 10         sum(decode(flag, 2, value, 0)) sum_2,
 11         --
 12         sum(decode(flag, 1, value, 0)) - sum(decode(flag, 2, value, 0)) result
 13  from test;

     SUM_1      SUM_2     RESULT
---------- ---------- ----------
      1500        600        900

SQL>
于 2018-06-22T09:12:23.417 回答