Something
public text v1 · immutable 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
)