日期:2014-05-17 浏览次数:20795 次
f1 f2 f3 f4 time 20 21 12:00
------解决方案--------------------
是不是还少个主要字段啊 2个如何关联起来呢?
------解决方案--------------------
-- 一个重要的问题没搞明白:A表和B表是怎么关联记录行滴?
------解决方案--------------------
根据time来关联?
select a.f1||b.f1,a.f2||b.f2,a.f3||b.f3,a.f4||b.f4,a.time from A,B where a.time=b.time
------解决方案--------------------
如果一个时间都是一个空格对呀一个数字的话 这样应该可以了
select a.f1||b.f1 f1,a.f2||b.f2 f2 ,a.f3||b.f3 f3 ,a.f4||b.f4 f4,a.time from A,B where a.time=b.time
------解决方案--------------------
select nvl(a.f1, b.f1) f1 ,nvl(a.f2,b.f2) f2 ,nvl(a.f3,b.f3) f3 ,nvl(a.f4,b.f4) f4 from testA a , testB b where a.time=b.time ;
------解决方案--------------------
create table taba (f1 int, f2 int, f3 int, f4 int, times varchar(7)) insert into taba select 1,2,null,null,'12:00' union all select 3,null,4,null,'13:00' create table tabb (f1 int, f2 int, f3 int, f4 int, times varchar(7)) insert into tabb select null,null,12,13,'12:00' union all select null,15,null,16,'13:00' select coalesce(a.f1,b.f1) f1, coalesce(a.f2,b.f2) f2, coalesce(a.f3,b.f3) f3, coalesce(a.f4,b.f4) f4, a.times from taba a inner join tabb b on a.times=b.times f1 f2 f3 f4 times ----------- ----------- ----------- ----------- ------- 1 2 12 13 12:00 3 15 4 16 13:00 (2 row(s) affected)
------解决方案--------------------
select sum(nvl(f1,0)) f1,sum(nvl(f2,0)) f2,sum(nvl(f3,0)) f3,sum(nvl(f4,0)) f4,time from (select * from A union all select * from B) group by time
------解决方案--------------------
如果不想写字段 如果不用存储过程 单纯的用sql 貌似很难
------解决方案--------------------
select nvl(a.f1, b.f1) f1 , nvl(a.f2,b.f2) f2 , nvl(a.f3,b.f3) f3 , nvl(a.f4,b.f4) f4 ,a.time from testA a , testB b where a.time=b.time ;
------解决方案--------------------