4D SQL (версия 15.6): сочетание СОЕДИНЕНИЙ предложение WITH ВНУТРЕННИЕ запросы на FROM, ВЫБЕРИТЕ

#sql #join #common-table-expression #4d-database #inner-query

#sql #Присоединиться #common-table-expression #4d-база данных #внутренний запрос

Вопрос:

Кто-нибудь здесь когда-нибудь работал с 4D SQL?

Наше корпоративное приложение основано на этом и через ODBC conector (я пробовал несколько версий драйвера ODBC, и теперь я использую версию 17 на x64), и я могу использовать менеджер БД, такой как DBeaver, для запроса связанной БД:

введите описание изображения здесь

введите описание изображения здесь

Это единственная конфигурация, с которой я закончил, чтобы правильно выполнить SQL-запросы через DBeaver, соблюдая кодировки, соединения и т.д…

Но я обнаружил множество проблем с 4D SQL:

  1. Нет предложения «WITH» для предварительного создания групп и ВЫБОРА из них…
  2. Я не могу выполнить несколько СОЕДИНЕНИЙ, объединяющих их: например, SELECT ... FROM ... INNER JOIN ... ON(...) LEFT JOIN ... ON(...) . Я могу использовать только внутренние или левые элементы в одном блоке…
  3. Использование внутренних запросов, похоже, возможно только в качестве предикатов (на WHERE). Но если я хочу сделать SELECT ... FROM (INNER QUERY) AS t WHERE... , это невозможно.

Вы не можете сделать SELECT COUNT(*) FROM (INNER QUERY) , например.

И многое другое, подобное этому.

Кто-нибудь здесь в такой же ситуации и с некоторыми решениями?

Комментарии:

1. В чем вопрос?

Ответ №1:

Вы не упомянули версию 4D, с которой работаете. Последние версии, особенно v18, значительно улучшили реализацию SQL.

Вы также найдете более подробную справку здесь:https://discuss.4d.com /

Комментарии:

1. Доброе утро! Сейчас мы работаем с версией 15.6. Надеюсь, мы перейдем к 18 в краткосрочной перспективе…