Sum/divide 个值来自查看结果

Sum/divide values from View results

我有 4 个视图,其中的列和结果如下:

 ___________________________________
| Account_no | Region_code | Total  |
|-----------------------------------
|123456789   | 123         | 321,34 |
|212234567   | 543         | 214    | 
|076948329   | 100         | 310    |
|093290432   | 320         | 1200,44|
|346574554   | 123         | 542,01 |
|___________________________________|

所有这些视图都计算了总计列,但为了获得区域中每个帐户的完整结果,我需要再次计算总计,公式如下:View1.Total - View2.Total + View3.Total - View4.Total

谁能给我举个例子,说明如何在 Oracle 中实现这一点?

像这样(简体)?

SQL> with
  2  view1 (accno, total) as
  3    (select 1, 100 from dual union
  4     select 2, 200 from dual
  5    ),
  6  view2 (accno, total) as
  7    (select 1, 10 from dual union
  8     select 2, 30 from dual
  9    ),
 10  view3 (accno, total) as
 11    (select 1, 20 from dual union
 12     select 2, 40 from dual
 13    ),
 14  view4 (accno, total) as
 15    (select 1, 40 from dual union
 16     select 2, 30 from dual
 17    )
 18  --
 19  select v1.accno,
 20    (v1.total - v2.total + v3.total - v4.total) total_total
 21  from view1 v1 join view2 v2 on v1.accno = v2.accno
 22                join view3 v3 on v1.accno = v3.accno
 23                join view4 v4 on v1.accno = v4.accno;

     ACCNO TOTAL_TOTAL
---------- -----------
         1          70
         2         180

SQL>