日期:2014-05-17  浏览次数:20872 次

菜鸟求教一个SQL语句怎么写,在线狂等............
共两张表,一张任务表有三个电话号码,以及最新发生时间,一张电话拨打情况表有一个电话号码以及该号码的拨打状态和最新发生时间;
任务表如下:
create table queue(
call_id      number(10) primary key not null,
         alarm_orgfp  varchar2(46) not null,
         Alarm_last_event_time   date,--最新发生时间
telno1      varchar2(32)  not null,
telno2      varchar2(32),
telno3      varchar2(32)
);
电话拨打情况表如下:
create table tmpdial(
telno        varchar2(32)  not null,
Alarm_last_date   date     default sysdate  not null, --最新发生时间
send_status  number(1)  default 0  not null,  --拨打状态 
primary key(telno,Alarm_last_date)
);

我想查出任务表中的每一条记录的alarm_orgfp,三个电话号码,以及三个电话号码的状态值等字段,两张表的关联条件是任务表中每个电话分别对应拨打情况表中一条记录,另一个重要条件是任务表的Alarm_last_event_time减去拨打情况表的Alarm_last_date时间大于0分钟,小于十分钟
oracle sql语句 两表关联查询

------解决方案--------------------
telno 和 telno123 之间的哪一个有关联关系哦?  意思是,一条对应一条的条件大概是啥
------解决方案--------------------
SELECT TQ.ALARM_ORGFP,
 TQ.TELNO1, T1.SEND_STATUS,
 TQ.TELNO2, T2.SEND_STATUS,
 TQ.TELNO3, T3.SEND_STATUS
 FROM QUEUE TQ, TMPDIAL T1, TMPDIAL T2, TMPDIAL T3
 WHERE TQ.TELNO1 = T1.TELNO
 AND   TQ.TELNO2 = T2.TELNO
 AND   TQ.TELNO3 = T3.TELNO
 AND   TQ.Alarm_last_event_time - T1.Alarm_last_date BETWEEN 0 AND 10/(24*60)
 AND   TQ.Alarm_last_event_time - T2.Alarm_last_date BETWEEN 0 AND 10/(24*60)
 AND   TQ.Alarm_last_event_time - T3.Alarm_last_date BETWEEN 0 AND 10/(24*60)

------解决方案--------------------
一个问题就是:三个号码要同时满足大于0小于10分钟才查得到。