基本信息表A,其中信息编号唯一,并记录信息添加时间;反馈信息表B,其中反馈编号唯一,并记录对应信息编号,反馈时间。对于同一条信息,可有几条反馈信息。现在需要做的是,检查信息首次反馈时间(B表)与信息添加时间(A表)超过1小时的信息有哪些,同一条信息的第2次及以上的反馈信息不包括在内。这该怎么做?谢谢
解决方案 »
- shutdown immediate和shutdown abort有什么区别?
- oracle 语句 优化 !!!!
- oracle 10g enterprise manager 中关于备份的问题
- 100分一个简单问题
- 我是oracle 9i 的Integrated Management Tools里中oracle directory manager无法连接,提示服务器未启动
- 数据库连接串问题
- 紧急求助:ORACLE 8i安装问题
- 有高手知道在oci中如何调用plsql过程块吗?
- oracle8.0.5在nt4.0上安装,不能建立数据库的问题:
- 关于分区表的问题
- 怎样新建一个带状态的序列号
- 大家谁用的Oracle 11g
(select 信息编号,min(反馈时间) mintime from b
group by 信息编号) v
where a.信息编号=v.信息编号 and v.mintime-a.添加时间>1/24;
from A
where exists (select 'X'
from B
where B.信息编号=A.信息编号
and B.反馈时间-A.反馈时间>1小时
and not exists (select 'X'
from B B2
where B2.信息编号=B.信息编号
and B2.反馈时间<B.反馈时间
)
)
SELECT *
FROM 基本信息表 c,
(SELECT *
FROM 反馈信息表 d
WHERE EXISTS (SELECT 1
FROM (SELECT a.信息id, MIN(b.反馈时间) 反馈时间
FROM 基本信息表 a, 反馈信息表 b
WHERE a.信息id = b.信息id
GROUP BY a.信息Id) e
WHERE e.信息id = d.信息id AND
e.反馈时间 = e.反馈时间)) f
WHERE a.信息id = b.信息id AND
(a.增加时间 - b.反馈时间) > 1 / 24
SELECT *
FROM 基本信息表 c,
(SELECT *
FROM 反馈信息表 d
WHERE EXISTS
(SELECT 1
FROM (SELECT a.信息id, MIN(b.反馈时间) 反馈时间 FROM 反馈信息表 b GROUP BY a.信息Id) e
WHERE e.信息id = d.信息id AND
e.反馈时间 = d.反馈时间)) f
WHERE c.信息id = f.信息id AND
(f.反馈时间 - c.增加时间) > 1 / 24
select a.*,c.反馈编号,b.反馈时间
from a,
(select b.反馈编号,b.信息编号,b.反馈时间,rank() over(partition by b.信息编号 order by b.反馈时间 desc) rn
from b
) c
where rn=1 and a.信息编号=c.信息编号 and c.反馈时间-a.添加时间>1/24