[snip]
It seems you're dealing with area code logic.  If you can re-schema your

tables, consider:

   SELECT ...
LEFT JOIN phoneno on cdr.dialednoid = phoneno.id
    WHERE ...
      AND phoneno.areacode in (866,877,888)
      AND ...

Get the idea?
[/snip]

Thanks all! Here is the final (reducing query time from plus 30 minutes
to under 3 minutes)

SELECT COUNT(cdr.ani) AS qtyin, SUM(cdr.calldur)/60 AS minin
FROM tblCDR cdr LEFT OUTER JOIN CDRFilter e 
ON cdr.dialedno = e.phoneNumber 
WHERE e.phoneNumber IS NULL 
AND LEFT(cdr.dialedno, 3) IN ('800','866','877','888')
AND cdr.pindigs = '' 
AND cdr.predig <> '2'
AND cdr.predig <> '3'
AND cdr.discn_dt <= '2003-05-25' 
AND cdr.billed_flag = '' 

This requires no change to the table, no tables to be added.

Thanks!

jay

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to