[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]