现在有一张表记录事件,包括操作,时间,机器,详细信息等字段。一个操作有一个开始事件和一个结束事件。需要根据各种条件的组合查询,其中一个条件就是看哪些操作时长是否有查过一定时间的(例如1分钟,结束事件的时间减去开始事件的时间)。如何在一条SQL语句完成上述查询,或者效率较高的多条查询也可以。需要能组合其他条件。
解决方案 »
- oracle的dmp文件可以导入到sql server 2000里吗?
- 打开vmware server home page出现503 server unavailable怎么办
- 大家可以下载32bit 的windows下的11GR2
- 跪求。。。连续统计的的问题???
- 那里可以学习oci编程技术呀?或者文档之类。。。小弟刚刚开始接触oci
- ERROR: ORA-03121: no interface driver connected - function not performed
- 对于时间,在数据库中用字符串类型和用date类型有什么不同?用字符串类型对应用有影响吗?
- 把数据从oracle往mysql里导怎么导啊???急!!!
- 关于数据库的运行模式!
- 在PL/SQL如何得到汉字的全拼
- 求在java中浮点型数据与oracle9i中数据类型的对应关系?
- sql文搞不定了.好象是group by的问题.大家帮我看看.
select ……
from
(
select 事件,操作,时间,……
from tabName
where 标识开始或结束事件的字段=开始事件 and 开始事件的其他条件
) tabA join
(
select 事件,操作,时间,……
from tabName
where 标识开始或结束事件的字段=结束事件 and 结束事件的其他条件
) tabB on tabA.操作 = tabB.操作where tabB.时间 - tabA.时间 > 设定的时长
select ……
from
(
select 事件,操作,时间,……
from tabName
where 标识开始或结束事件的字段=开始事件 and 开始事件的其他条件
) tabA join
(
select 事件,操作,时间,……
from tabName
where 标识开始或结束事件的字段=结束事件 and 结束事件的其他条件
) tabB on tabA.操作 = tabB.操作
where tabB.时间 - tabB.时间 > 设定的时长
===================================================================================没有结束事件就用“当前时间”减去开始事件的时间吗?如果是这样,It is so easy!select ……
from
(
select 事件,操作,时间,……
from tabName
where 标识开始或结束事件的字段=开始事件 and 开始事件的其他条件
) tabA left join
(
select 事件,操作,时间,……
from tabName
where 标识开始或结束事件的字段=结束事件 and 结束事件的其他条件
) tabB on tabA.操作 = tabB.操作
where nvl(tabB.时间,sysdate) - tabA.时间 > 设定的时长