create view view_name (a,b,c,d,e,f)
as
select b.a,b.b,b.c,b.d,a.c,a.d
from 
(select a,b,c,d from 表1) a,
(select a,b,c,d from 表2) b
where a.a = b.a(+)
and a.b = b.b(+)

解决方案 »

  1.   

    边城骆驼老兄,你的语句我试过了,也不能解决A+B相同的字段自动合并的问题,即视图中不能保证A+B的唯一性。
    请再琢磨一下吧。
      

  2.   

    (select a,b,c,d from 表2)
    换成
    (select a,b,c,d 
      from 表2 c 
     where c.rowid = (select max(rowid) 
                        from 表2 d 
                       where c.a =d.a and c.b =d.b ))
    就可以了
      

  3.   

    create view view_name (a,b,c,d,e,f)
    as
    select b.a,b.b,b.c,b.d,a.c,a.d
    from 
    (select a,b,c,d from 表1) a,
    (select distinct a,b from 表2) b
    where a.a = b.a(+)
    and a.b = b.b(+)
      

  4.   

    linzy:您好!
      您所提供的方法实现了A+B相同的字段的记录的唯一性,但却没有实现2表中A+B相同的字段的记录的数值型字段H字段的相加,而只是取了其中一条记录的数值,上述要求怎样实现?
      

  5.   

    两个表是这样的:
    1表:
       结构:zh(主键) tb(主键)mc       mzh
       记录:R30       01      保护森林  0.10
    2表
       结构:dwdm(主键) month(主键) zh   tb  mc   mzh  sl   je
       记录  001         06           R30  01  保森 0.1  1000  100
             001         06           R30  01  保护 0.10 5000  500
             001         06           R31  02  蓝鸟 0.60 8000  4800
             001         06           R31  03  孔雀 0.8  2000  1600
             001         06           R31  03  孔雀1 0.80 1000  800视图结果:
       记录: 001         06           R30  01  保护森林  0.10  6000  600
             001         06           R31  02  蓝鸟      0.60  8000 4800
             001         06           R31  03  孔雀      0.8   3000 2400