我有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。总计-View4。总计。
有人可以教我一个有关如何在Oracle中实现此目标的示例吗?
答案 0 :(得分:0)
这样的事情(简化)?
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>