根据标志列Oracle SQL Developer,合计结果(求和或减去某些值)

根据标志列Oracle SQL Developer,合计结果(求和或减去某些值),sql,oracle,consolidation,Sql,Oracle,Consolidation,我是SQL开发者的新手 我有一个类似上图的查询结果 我想知道如何用Flag=1求和所有值,并用Flag=2减去所有值,以获得一个总结果?在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,

我是SQL开发者的新手

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


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

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>

使用SQL-请参阅下面的答案。或者,您可以右键单击,导出到Excel(XLSX),然后在那里使用Excel功能。不过SQL非常强大,我希望您能给它一个机会;我很高兴你来了