17. Режим SQL

В настройке отбора отчетов и запросов вы можете перейти в режим SQL, если вам не хватает возможностей построителя запросов. Нажмите крайнюю правую кнопку с надписью SQL, чтобы перейти в режим SQL.

Кнопка перехода в режим SQL

Вместо построителя запросов появится окно редактора SQL-выражений.

Окно редактора SQL-выражений

Окно состоит из поля для редактирования SQL-выражения. Ниже в таблице отображается результат выполнения запроса. Справа отображаются поля SQL-запроса и их свойства.

Свойства полей

Поля создаются автоматически в результате выполнения запроса. При этом свойства полей будут заполнены значениями по умолчанию. Всего у поля 4 свойства:

  • Имя поля - имя, отображаемое в заголовке табличной части запроса/отчета, и которое можно использовать в выражениях.
  • SQL-имя - имя поля из SQL-выражения. Задается псевдонимом или определяется автоматически на основании результата запроса. Вы можете его изменить, но будьте осторожны. Если в результатах запроса этого имени не будет, то поле автоматически удалится.
  • Тип поля определяется автоматически, но его можно изменить, задав одно из следующих значений: текст, число, дата, время, флажок.
  • Формат - определяет формат вывода данных. Примеры форматов:
Тип поляФорматРезультат
Датаdd.mm.yyyy13.05.2024
Датаyy-m-d24-5-13
Датаmm.yyyy05.2024
Датаd mmmm yyyy5 Май 2024
Времяhh:nn:ss10:45:05
Времяhh:nn10:45
Число0.001354,30
Число0.##1354,3
Число,0.001 354,30

Свойства полей не влияют на результат в таблице, кроме свойства «Формат».

Использование параметров

Вы можете использовать поля текущей формы как параметры для SQL-выражения. Параметры пишутся как обычные поля, в квадратных скобках, но перед именем ставиться двоеточие (поле текущей формы) или восклицательный знак (поле родительской формы). Например:

SELECT [поступление товара].id, [номер], [дата], [время], p.[название], [сумма] FROM [поступление товара]
  INNER JOIN [поставщики] p ON [поставщик]=p.id
WHERE [?дата]>=[:начало] AND [?поступление товара].[дата]<=[:конец] AND "?p".id=[:поставщик]

Обратите внимание на поля с вопросительным знаком слева от знака равенства. Это необязательные поля. Если значение поля-параметра равно NULL, то условие исключается из выражения.

Если перед именем поля через точку указано имя формы или псевдоним, то вопросительный знак ставится перед именем формы/псевдонимом. При этом псевдоним следует заключить в двойные кавычки, чтобы не было синтаксической ошибки.

Параметры можно использовать только в запросах, в отчетах использовать их нельзя.

Использование выражений

Вы можете использовать в SQL выражения DataExpress. Для этого выражение следует заключить в фигурные скобки. Например:

SELECT id, [продажа товара].[номер], [дата], [сумма] FROM [продажа товара]
WHERE [клиент]={RECID('ЗапросКлиенты')}

Хотя в выражении можно использовать имена полей текущей формы без двоеточия, настоятельно рекомендуется ставить двоеточие, чтобы запрос мог реагировать на изменения полей.

Сортировка

Хотя вы можете использовать оператор ORDER BY в выражении SQL, делать это не рекомендуется, т. к. сортировка настраивается в табличной части запроса и может меняться пользователем. Если вы все-таки используете этот оператор, то запретите пользователю менять сортировку, чтобы не вызвать синтаксическую ошибку в SQL-выражении.