 <p>The tricky bit is getting both related records at one time:</p> <pre><code>delete a1 from a a1 where ( a1.pub_cde = 'RTF' and exists ( select 'x' from a a2 where a2.ctm_nbr = a1.ctm_nbr and a2.pub_cde = 'CTR' and a2.itg = 2 * a1.itg ) ) or ( a1.pub_cde = 'CTR' and exists ( select 'x' from a a2 where a2.ctm_nbr = a1.ctm_nbr and a2.pub_cde = 'RTF' and a2.itg * 2 = a1.itg ) ); </code></pre> <p><a href="http://sqlfiddle.com/#!3/10f7e/3" rel="nofollow">Example SQL Fiddle</a></p>