SELECT B.CALLERNO,'111',
(select bb.name from BUS_RPT_TAGENTINFO bb
where bb.AGENTID =B.CALLERNO
and bb.SUBCCNO = b.SUBCCNO) ,
B.CALLEENO ,
(select name from BUS_RPT_TAGENTINFO where AGENTID =B.CALLEENO and SUBCCNO=--有问题b.SUBCCNO) "CalledName",
(select bb.name from BUS_RPT_TAGENTINFO bb
where bb.AGENTID =B.CALLERNO
and bb.SUBCCNO = b.SUBCCNO) ,
B.CALLEENO ,
(select name from BUS_RPT_TAGENTINFO where AGENTID =B.CALLEENO and SUBCCNO=--有问题b.SUBCCNO) "CalledName",
解决方案 »
- 常用DBA工具
- ORACLE中如何根据条件拆分一个字符串字段为2个数值字段?
- Oracle10g下创建表空间的问题
- Net Configuration Assistant里面测试成功,但SQL*PLUS连接不上!
- 管理员登陆之后报错误ora-01219 普通用户登陆时报ora-01033错误怎么解决
- ▲▲出个有关SQL(ORACLE)的难题 ▲▲
- 关于oracle中的唯一性限制
- snapshot log是什么东东?怎么用?
- 数据库的用户权限问题
- oracle8.1.6的TNS listener不起作用怎么办?
- 寻找某字段为空的记录
- 我也寻一条SQL语句,想了两天了,都没搞定! 关于一条语句中查同一字段的多个Count()!
INSERT INTO BUS_RPT_INTERCALL
SELECT B.CALLERNO,'111',
(select bb.name from BUS_RPT_TAGENTINFO bb
where bb.AGENTID =B.CALLERNO
and bb.SUBCCNO = b.SUBCCNO and rownum<2) ,
B.CALLEENO ,
(select name from BUS_RPT_TAGENTINFO where AGENTID =B.CALLEENO and SUBCCNO = b.SUBCCNO and rownum<2) "CalledName",
B.CALLBEGIN,B.CALLEND,(B.CALLBEGIN - B.CALLEND)*24*3600 "TalkTime",B.SUBCCNO,B.VDN,B.MEDIATYPE
FROM BUS_RPT_BILLLOGTMP B,BUS_RPT_TAGENTINFO T
WHERE B.CALLERNO = TO_CHAR(T.AGENTID(+)) and B.CALLEENO = TO_CHAR(T.AGENTID(+))
AND CALLTYPE = 6 AND MEDIATYPE <> 2;
改成这样应该可以
B.CALLERNO = TO_CHAR(T.AGENTID(+)) and B.CALLEENO = TO_CHAR(T.AGENTID(+))
这样写可以保证在B.CALLERNO没有匹配T.AGENTID时也可以选择出记录 langx2004(langx_lima):你的那种方式也不对,因为bb.AGENTID =B.CALLERNO
and bb.SUBCCNO = b.SUBCCNO 可以保证只返回一条记录,AGENTID和SUBCCNO是联合主建