у меня вообще начало складываться устойчивое подозрение, что для гарантированной работоспособности надо все это безобразие оформлять как pl/sql-процедуру.
в ней отбирать во временную таблицу max(сc.printtime) для каждой переоценки в отдельности. и с коммитом после каждого документа.
быстрее может и не станет (хотя станет, скорее всего), но зато время выполнения будет почти линейно зависеть от количества переоценок.
станет проще оценивать время работы и подбирать параметры периода документов и периода чеков.
да и от проблем с рбс, наверняка, избавимся, за счет частых коммитов.
а потом уже отдельным запросом форматировать вывод из этой таблицы для читания человеками.