set deleted on SELECT prj.projno, prj.workpkgno, cnt(*) as DupeCnt ; from ProjParent prj ; inner join Sub ; on sub.project_no = prj.projno ; AND sub.workpkg_no = prj.workpkgno ; AND sub.sub_sec = prj.subsec ; AND sub.sub_para = prj.subpar ; AND sub.sub_seq = prj.subseq having DupeCnt > 1 ; group BY prj.projno, prj.workpkgno ; order BY prj.projno, prj.workpkgno ; into cursor cSourceI think projno, workpgno etc were fields from current alias which I assumed to be the parent table. Yours would work with slight modification. However since I feel you would do this in a loop for each projno, workpkgno of parent, doing it once outside loop would be much more effective.