Очевидно, мне не хватает представителя, чтобы комментировать, но подход, который использует jmarkmurphy, является правильным.Это не операция, для которой требуется программа, это быстрый sql, и подход jmarkmurphy верен.Проблема, однако, состоит в том, что, когда есть две записи с одинаковым кодом транс, датой и суммой, вы все равно будете иметь дубликаты записей.Начните с вышеприведенного запроса (добавив дату транс, так как вы упомянули, что нужно соответствовать этому):
exec sql
update table a
set deletecode = 'D'
where amount <> (select max(amount) from table
where trancd = a.trancd and trandate = a.trandate)
Затем удалите все дубликаты:
exec sql
update table a
set deletecode = 'D'
where rrn(a) > (select min(rrn(b)) from table b
where a.trancd = b.trancd and a.trandate = b.trandate and a.amount = b.amount)