select doc_belzart,
doc_tariftyp,
doc_ab,
doc_bis,
max(tar_tarifart)
from
(
select document.belzart as doc_belzart,
document.tariftyp as doc_tariftyp,
document.ab as doc_ab,
document.bis as doc_bis,
tariff.tarifart as tar_tarifart,
tariff.tariftyp as tar_tariftyp,
tariff.ab as tar_ab,
tariff.bis as tar_bis
from dberchz1 as document
inner join ertfnd as tariff
on tariff.tariftyp = document.tariftyp and
tariff.ab <= document.ab and
tariff.bis >= document.bis
) as max_tariff
group by doc_belzart,
doc_tariftyp,
doc_ab,
doc_bis
В переводе на английский вы, похоже, хотите определить максимально применимый тариф для комплекта документов.
Я бы перестроил это на отдельные шаги:
Определите все применимые тарифы, то есть все тарифы, которые полностью покрывают временной интервал документа. Это станет вашим первым просмотром CDS, и в моем ответе будет сформирован подзапрос.
Определите для всех документов максимально применимый тариф. Это сформирует ваше второе представление CDS, а в моем ответе сформирует внешний запрос. У этого есть MAX / GROUP BY, чтобы уменьшить набор результатов до одного для документа.