для Evgeniy2020:
На данный момент в коде множество запросов, и они все разные. Их объединяет только наличие exists join ко второй таблице. Придется делать на каждый запрос свой Query.
для raz:
Да, так я избегу переписывания операторов, но запросы все равно придется дублировать.
Используйте QueryBuildDataSource и разбейте на методы. Если все грамотно сделать, дублирования кода не будет. Все будут сыты и довольны.