SELECT c.lastname, c.firstname, c.bday, c.zip, c.email, c.customer_type, c.current_status, c.last_visit_date, c.barcode, c.customer_id AS CID, address1, city, state FROM customers c JOIN ( SELECT firstname, lastname, bday, count(*) FROM customers GROUP BY firstname, lastname, bday HAVING count(*) > 1 ) q ON c.firstname = q.firstname AND c.lastname = q.lastname AND c.bday = q.bday UNION SELECT c.lastname, c.firstname, c.bday, c.zip, c.email, c.customer_type, c.current_status, c.last_visit_date, c.barcode, c.customer_id AS CID, address1, city, state FROM customers c JOIN ( SELECT LEFT (firstname, 1) fLetter, lastname, bday, zip, count(*) FROM customers GROUP BY substr(firstname, 1), lastname, bday, zip HAVING count(*) > 1 ) q ON LEFT (c.firstname, 1) = q.fLetter AND c.lastname = q.lastname AND c.bday = q.bday AND c.zip = q.zip ORDER BY lastname, firstname, bday, zip, CID