You have at least two choices, depending on the data.1. If all the columns that you are inserting are identical in both rows whether subscription code is PDD or TV, then you can use a distinct clause in the select(Select DISTINCT List_ID, Master_Customer_id, SS_ID,'AWD', Subscription_state,...
2. If they values can differ - for example, let us say Add_Date column for PDD is different from Add_Date column for TV. Then, you have to make a decision as to which value of Add_Date you want to insert in the one row that will be inserted. Let us say you want the latest date out of the two. Then use a MAX function together with group by clauseINSERT INTO Customer ( List_ID, Master_Customer_id, SS_ID, --YOU NEED TO GIVE A COLUMN NAME HERE FOR THE 'AWD TO GO IN Subscription_code, Subscription_state, Mod_Date, Transmission_flag, Transmission_date, Verified_flag, Verified_date )( SELECT List_ID, Master_Customer_id, SS_ID, 'AWD', Subscription_state, MAX(Add_Date), Mod_Date, Transmission_flag, Transmission_date, Verified_flag, Verified_date FROM Customer WHERE (Subscription_code = 'PDD' OR Subscription_code = 'TV') AND Subscription_state = 'Y' GROUP BY List_ID, Master_Customer_id, SS_ID, Subscription_state, Mod_Date, Transmission_flag, Transmission_date, Verified_flag, Verified_date )