@ Нивас, как правило, правильный.
Это довольно распространенные модели
Разделение труда - администраторы баз данных должны возвращать все данные, которые нужны бизнесу, но у них есть только база данных для работы. Разработчики могут работать с администраторами баз данных, чтобы сделать это лучше, но ответственность отдела делает это практически невозможным. Таким образом, SQL используется для извлечения данных.
отсутствие мелких функций. Можно ли разбить массивный запрос на более мелкие этапы с использованием рабочих таблиц? Да, но я знаю среды, в которых новая таблица нуждается в пачках утверждений - только что написан тяжелый запрос
Итак, в общем случае, получение данных из базы данных - это все в базу данных. Но если запрос SQL слишком длинный, СУРБД будет сложно его оптимизировать, и это, вероятно, означает, что запрос охватывает данные, бизнес-логику и даже представление за один раз.
Я бы предположил, что более разумный подход, как правило, состоит в том, чтобы отделить части «доставь мне данные» в хранимые процедуры или другие управляемые запросы, которые заполняют промежуточные таблицы. Затем бизнес-логика может быть написана на языке сценариев, который находится выше и управляет хранимыми процедурами. И презентация осталась в другом месте. В сущности, такие решения, как Cognos, все равно пытаются это сделать.
Но если вы смотрите на ERP в производстве, ограничения и решения, описанные выше, возможно, уже существуют - вы говорите с нужными людьми?