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(+)
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(+)
请再琢磨一下吧。
换成
(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 ))
就可以了
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(+)
您所提供的方法实现了A+B相同的字段的记录的唯一性,但却没有实现2表中A+B相同的字段的记录的数值型字段H字段的相加,而只是取了其中一条记录的数值,上述要求怎样实现?
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