oracle中对于查询出来的两个结果集做join,怎样对两个结果集做运算?
比如一个table1中有如下字段:idtypeleveldate;两个查询语句如下:1:select*fromtable1wherelevel='1';结果:idtype...
比如一个table1中有如下字段:
id type level date;
两个查询语句如下:
1: select * from table1 where level = '1';
结果:
id type level date
20 A 1 2016-12-15 15:43:22
11 B 1 2016-11-15 22:13:11
44 D 1 2016-10-25 15:43:33
51 C 1 2016-09-22 11:33:22
2: select * from table1 where level = '2';
结果:
id type level date
4 A 2 2016-12-15 15:03:22
55 B 2 2016-10-12 22:13:11
32 D 2 2016-01-25 15:43:33
193 C 2 2016-10-28 21:13:22
上面两个查询结果集中,各自的type不会出现重复的情况,相同type时,2的时间比1小。
我想实现对1和2中的查询做JOIN运算,条件是type相等时,求date的时间差(秒),并且求1中的时间和当前实时时间的时间差。
预期结果:
type difftime difftimeNow
A 2400 125400
B ... ...
C ... ...
D ... ... 展开
id type level date;
两个查询语句如下:
1: select * from table1 where level = '1';
结果:
id type level date
20 A 1 2016-12-15 15:43:22
11 B 1 2016-11-15 22:13:11
44 D 1 2016-10-25 15:43:33
51 C 1 2016-09-22 11:33:22
2: select * from table1 where level = '2';
结果:
id type level date
4 A 2 2016-12-15 15:03:22
55 B 2 2016-10-12 22:13:11
32 D 2 2016-01-25 15:43:33
193 C 2 2016-10-28 21:13:22
上面两个查询结果集中,各自的type不会出现重复的情况,相同type时,2的时间比1小。
我想实现对1和2中的查询做JOIN运算,条件是type相等时,求date的时间差(秒),并且求1中的时间和当前实时时间的时间差。
预期结果:
type difftime difftimeNow
A 2400 125400
B ... ...
C ... ...
D ... ... 展开
1个回答
展开全部
select t1.type,(t1.date-t2.date)*86400 as difftime,(t1.date-sysdate)*86400 as difftimeNow
from
(select type,date from table1 where level = '1') t1,
(select type,date from table1 where level = '1') t2
where t1.type=t2.type
from
(select type,date from table1 where level = '1') t1,
(select type,date from table1 where level = '1') t2
where t1.type=t2.type
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询