SELECT client_no,address1,address2,address3,address4, ; ext_recall,0 as sameAddress FROM client_detail ; WHERE next_recall = ?cYM ORDER BY 1 into cursor recall1 update recall1 set recall1.sameaddress="1" from recall1 ; inner join ; (Select address1,address2,address3,address4,Count(*) as nTimes ; from recall1 group By address1,address2,address3,address4 ; Having Count(*) > 1) b on recall1.address1=b.address1 ; AND recall1.address2=b.address2 AND ; recall1.address3=b.address3 AND ; recall1.address4=b.address4I wonder is there anyway to combine 2 steps into 1