SELECT SUM(c.billsec/60) AS ttime, COUNT(c.uniqueid) AS tcalls, CONCAT(e.FIRST_NAME, ' ', e.SECOND_NAME) AS emp, IF( c.userfield = '', c.src, c.userfield) AS ext FROM cdr c LEFT JOIN extentions x ON ( c.src=x.channel OR c.userfield=x.extention ) LEFT JOIN employee e ON ( e.extention=c.src OR e.extention=c.userfield ) WHERE c.lastapp = ? AND c.disposition = ? AND c.accountcode LIKE ? AND ( ( c.src BETWEEN ? AND ? ) OR ( c.userfield BETWEEN ? AND ? ) ) AND ( c.calldate BETWEEN ? AND ? ) GROUP BY IF ( c.userfield = '', c.src, c.userfield ) ----------------------------------------------------------------------- Changed to: SELECT SUM(c.billsec/60) AS ttime, COUNT(c.uniqueid) AS tcalls, CONCAT(e.FIRST_NAME, ' ', e.SECOND_NAME) AS emp, IF( c.userfield = '', c.src, c.userfield) AS ext FROM cdr c LEFT JOIN extentions x ON ( IF ( c.userfield = '', c.src=x.channel, c.userfield=x.extention ) ) LEFT JOIN employee e ON ( IF ( c.userfield = '', e.extention=c.src, e.extention=c.userfield ) ) WHERE c.lastapp = ? AND c.disposition = ? AND c.accountcode LIKE ? AND ( ( c.src BETWEEN ? AND ? ) OR ( c.userfield BETWEEN ? AND ? ) ) AND ( c.calldate BETWEEN ? AND ? ) GROUP BY IF ( c.userfield = '', c.src, c.userfield )