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>
我有 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>