视图1得到结果集格式x     y
1     0
2     1
3     4
视图2得到结果集x   z
1   7
2   5
3   8
现在要得到这样的结果集x   y   z
1   0   7
2   1   5
3   4   8 

解决方案 »

  1.   

    视图1得到结果集格式x     y
    1     0
    2     1
    3     4
    视图2得到结果集x   z
    1   7
    2   5
    3   8
    4   10现在要得到这样的结果集x   y   z
    1   0   7
    2   1   5
    3   4   8 
    4       10
      

  2.   

    SQL> select * from t1;         X          Y
    ---------- ----------
             1          0
             2          1
             3          4
             5          6SQL> select * from t2;         X          Z
    ---------- ----------
             1          7
             2          5
             3          8
             4         10  1* select t1.x,t1.y,t2.z from t1 full outer join t2 on t1.x = t2.x
    SQL> /         X          Y          Z
    ---------- ---------- ----------
             1          0          7
             2          1          5
             3          4          8
             5          6
                                  10恩,由于输出的是t1.x,所以,t2.x=4那条记录虽然出现了,但是没有显示X,有点小失败。
    SQL> select t1.x,t1.y,t2.z from t1,t2 where t1.x=t2.x(+) 
      2  union 
      3  select t2.x,t1.y,t2.z from t1,t2 where t2.x=t1.x(+);         X          Y          Z
    ---------- ---------- ----------
             1          0          7
             2          1          5
             3          4          8
             4                    10
             5          6
    这样好多了。
      

  3.   

    大概原理,不知道能否实现
    你先看看select nvl(x,0)x,sum(y)y,sum(z)z
     (select x,y,0 z
       from t1
    union all
     select x,0 y,z
       from t2)
    group by x