Field routine process only one record at a time so its not advisable to use loop inside a field routine.
please re-visit the code and try to implement it in start or end routine.try to sort the internal table on the basis of some field and then do a deletion on internal table.this way you would be able to prune the table..select single is only picking a