@molona, @molona, @molona
Part of the problem is you violated what I consider one of the basic tenets of SQL query design
“Never use a sub-query when a join will do”
That query is so daunting, it’s no wonder everyone is struggling to try and help. I tried to strip out all the unnecessary sub-queries and bake it down to the essentials, then added the only sub-query I thought it really needed, and which I hope solves your need (and doesn’t have too many syntax errors - it’s been nigh on forever since I did any informix work - thank goodness ) .
SELECT DISTINCT ccd.sessionid
, ccd.sessionseqnum
, ccd.contactdisposition
, ccd.callednumber
, ccd.origcallednumber
, ccd.profileid
, ccd.nodeid
, crd.qindex
, crd.qindex
, cqdr.queuetime
, acdr.talktime
, acdr.ringtime
, acdr.holdtime
, acdr.worktime
FROM contactcalldetail ccd
, contactroutingdetail crd
, contactqueuedetail cqdr
, constactservicequeue csq
, OUTER (SELECT acd.qindex
, acd.sessionid
, acd.sessionseqnum
, acd.talktime
, acd.ringtime
, acd.holdtime
, acd.worktime
FROM agentconnectiondetail acd,
(SELECT sessionid
, MAX(ringtime)
FROM agentconnectiondetail
GROUP BY sessionid) acd2
WHERE acd.sessionid = acd2.sessionid
AND acd.ringtime = acd2.ringtime)) acdr
WHERE ccd.startdatetime BETWEEN '2013-12-1 00:00:00' AND '2013-12-31 23:59:59'
AND ccd.callednumber = '6666'
AND DATEDIFF('ss',ccd.startdatetime, ccd.enddatetime) >=10
AND cqdr.sessionid = crd.sessionid
AND cqdr.sessionseqnum = crd.sessionseqnum
AND cqdr.qindex = crd.qindex
AND cqdr.nodeid = crd.nodeid
AND cqdr.profileid = crd.profileid
AND cqdr.targetid = t.recordid
AND csq.csqname like 'CSQ_CC%'
AND ccd.sessionid = acdr.sessionid
AND ccd.sessionseqnum = acdr.sessionseqnum
AND crd.profileid = acdr.profileid
AND ccd.nodeid = acdr.nodeid
AND (Nvl(crd.qindex, acdr.qindex) = acdr.qindex or acdr.qindex <= 0)