• There are a number of problems with that piece of code (and this is just what I can see via my phone):

    - the date parameters are not used in the proc

    - ContactMaster should probably be a temp table (#)

    - you join twice to ContactMaster on the same colum, Cdestination <-- MAJOR PROBLEM

    - you appear to have missed my point about duplicating code; clean the data once and once only. Try to avoid joins with functions.

    - you appear to have got rid of the cleanPhone column. Why?

    Make these corrections, see if you still get the duplicates.