17. Режим SQL
В настройке отбора отчетов и запросов вы можете перейти в режим SQL, если вам не хватает возможностей построителя запросов. Нажмите крайнюю правую кнопку с надписью SQL, чтобы перейти в режим SQL.
Вместо построителя запросов появится окно редактора SQL-выражений.
Окно состоит из поля для редактирования SQL-выражения. Ниже в таблице отображается результат выполнения запроса. Справа отображаются поля SQL-запроса и их свойства.
Свойства полей
Поля создаются автоматически в результате выполнения запроса. При этом свойства полей будут заполнены значениями по умолчанию. Всего у поля 4 свойства:
- Имя поля - имя, отображаемое в заголовке табличной части запроса/отчета, и которое можно использовать в выражениях.
- SQL-имя - имя поля из SQL-выражения. Задается псевдонимом или определяется автоматически на основании результата запроса. Вы можете его изменить, но будьте осторожны. Если в результатах запроса этого имени не будет, то поле автоматически удалится.
- Тип поля определяется автоматически, но его можно изменить, задав одно из следующих значений: текст, число, дата, время, флажок.
- Формат - определяет формат вывода данных. Примеры форматов:
Тип поля | Формат | Результат |
Дата | dd.mm.yyyy | 13.05.2024 |
Дата | yy-m-d | 24-5-13 |
Дата | mm.yyyy | 05.2024 |
Дата | d mmmm yyyy | 5 Май 2024 |
Время | hh:nn:ss | 10:45:05 |
Время | hh:nn | 10:45 |
Число | 0.00 | 1354,30 |
Число | 0.## | 1354,3 |
Число | ,0.00 | 1 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-выражении.