EQL365 — язык запросов для поиска данных в ELMA365. С его помощью можно находить элементы приложений по значениям полей, объединять несколько условий, использовать параметры, выполнять поиск по датам, пользователям и связанным объектам.
В статье описаны правила составления EQL-запросов, доступные операции и функции, а также примеры простых и вложенных запросов.
О том, где можно использовать EQL-запросы, читайте в статьях «Поисковые запросы на языке EQL365» и «Способы поиска в приложении».
Подобрать EQL-конструкцию под задачу
Что нужно сделать |
Какой раздел выбрать |
Составить простой EQL-запрос |
|
Узнать, как записывать строки, числа, даты и другие значения |
|
Добавить в форму поиска поля для ввода значений и сохранить запрос как фильтр |
|
Сравнить значения, найти совпадение, пустое поле или одно из нескольких значений |
|
Объединить несколько условий или исключить условие |
|
Указать дату, время или период относительно текущей даты |
|
Найти записи, связанные с текущим пользователем |
|
Указать определённый или любой элемент произвольного приложения |
|
Посчитать количество элементов или результатов подзапроса |
|
Найти элементы другого приложения по заданным условиям |
|
Обратиться к свойствам родительского или корневого приложения |
Базовый EQL-запрос
Минимальный EQL-запрос состоит из трёх частей:
[код_переменной] операция значение
начало примера
Пример
[price] > 10000
Запрос найдёт элементы, у которых значение поля с кодом price больше 10 000.
конец примера
При составлении запроса соблюдайте следующие правила:
- Для обращения к свойству приложения укажите его код в квадратных скобках: [property_name].
- После кода свойства укажите операцию поиска: математический знак или ключевое слово EQL365.
- Искомое значение записывайте по правилам, установленным для типа свойства.
- Для указания или вычисления значения можно использовать функции, например Datetime() или CurrentUser().
- Чтобы вводить значения после составления запроса и использовать их несколько раз, создайте параметры. Поля для параметров автоматически появятся в окне поиска.
- Для поиска по нескольким условиям используйте логические операторы. Порядок проверки условий можно задать с помощью скобок.
- Для сложных выборок используйте подзапросы. В них можно обращаться к свойствам любого приложения в системе.
- Разделяйте все составляющие запроса пробелами.
При написании запроса можно использовать автозаполнение строки. Чтобы открыть список доступных свойств, функций и операторов, нажмите Ctrl + Пробел.
начало примера
Примеры
- [company_name] = 'АвтоПром' or [company_name] like 'Авто'
Поиск элементов приложения Компании, в которых поле Название полностью совпадает со значением АвтоПром или содержит значение Авто.
- [__createdAt] >= Datetime(2025, 1) and [__createdAt] < Datetime(2025, 2) and [price] > 4000
Поиск записей приложения Заказы, у которых в поле Дата создания указан январь 2025 года, а значение поля Стоимость больше 4 000 рублей.
- [contract] in (select [__id] from [documents.contracts] where [total] > 10000)
Поиск записей приложения Контрагенты, у которых в поле Договор указан элемент приложения с суммой больше 10 000 рублей.
конец примера
Как записывать значения в EQL-запросе
Значения в EQL-запросе записываются по-разному в зависимости от типа свойства. Например, текст указывается в одинарных кавычках, а числа — без кавычек. Основные правила и примеры приведены в таблице. Для дат, пользователей и связанных объектов ниже даны дополнительные пояснения.
Тип свойства |
Как записать значение |
Пример |
Строка |
Строкой в одинарных кавычках |
[authors_name] like 'Алекс' — поле Имя автора содержит значение Алекс. [product] in ('вентилятор', 'холодильник') — поле Продукт содержит одно из указанных значений. [authors_name] is null — имя автора не указано. |
Число, Деньги |
Числом без кавычек. Дробная часть отделяется точкой |
[size] < 5.5 — в поле Размер указано значение меньше 5,5 метра. [price] >= 5000 — значение поля Стоимость больше или равно 5 000 рублей. |
Выбор «да/нет» |
Значением true без кавычек |
[prepayment] = true — в поле Предоплата выбрано значение Да. [prepayment] <> true — значение Да не выбрано: в поле указано Нет либо поле не заполнено. [prepayment] is null — поле не заполнено. |
Дата/время |
Строкой в одинарных кавычках. Части даты разделяются дефисами. Можно использовать сокращённую запись, добавлять время и часовой пояс. Для сложных условий и относительных дат используйте функции: Datetime() и Time(), RelativeDatetime(). |
[close_date] > '2025-01-31-12' — поиск элементов с датой закрытия позже 31 января 2025 года 12:00. [close_date] < '2025-01-31T12:30:00' — дата закрытия раньше указанной, время без учёта часового пояса. [close_date] > '2025-01-31T12:30+09:00' — дата закрытия позднее указанной, время с часовым поясом UTC+09:00. |
Категория |
Кодом категории в одинарных кавычках |
[payment] in ('half', 'full') — в поле Оплата выбрано одно из указанных значений. |
Номер телефона |
Строкой в одинарных кавычках |
[phone] = '+71234567890' |
Электронная почта |
Строкой в одинарных кавычках |
[email] = 'admin@example.com' |
Ф. И. О. |
Строкой в одинарных кавычках |
[contact] like 'Иван' — поле Контактное лицо содержит значение Иван. |
Пользователи |
Идентификатором пользователя в одинарных кавычках, без пробелов |
[responsible] = '95806fe5-f8e8-460c-b2be-ce607068726c' |
Приложение |
Идентификатором элемента в одинарных кавычках, без пробелов |
[app] = '018a1c61-c2b9-7701-86ab-d8b39a143465' |
Произвольное приложение |
Строкой в одинарных кавычках. Путь состоит из кода раздела, кода приложения и при необходимости идентификатора элемента. Части пути разделяются двоеточиями и записываются без пробелов |
[client] = 'clients:contracts:1415381a-1197-11ee-be56-0242ac120002' — указан определённый элемент приложения. [client] = 'clients:contracts' — указан любой элемент приложения. |
Статус |
Числовым идентификатором статуса без кавычек |
[__status] = 1 — элементу присвоен первый по счёту статус. |
Чтобы указать в запросе конкретного пользователя, откройте раздел Компания > Сотрудники, выберите карточку пользователя и скопируйте идентификатор из адреса страницы.
Чтобы указать конкретный элемент приложения, откройте нужную запись и скопируйте идентификатор из адреса страницы.
Чтобы найти элементы, у которых свойство не заполнено, используйте операции IS NULL или IS EMPTY. Исключение составляют свойства типов Номер телефона и Электронная почта.
Создание и использование параметров EQL-запроса
В EQL-запросе можно создать параметр для определённого свойства. В него можно подставлять разные значения и находить подходящие элементы приложения, не изменяя сам запрос.
Параметр отображается на форме поиска как дополнительное поле, в котором пользователь указывает искомое значение.
Запрос с параметрами можно сохранить как фильтр и использовать повторно. Сохранённый фильтр появится на боковой панели окна расширенного поиска.
Чтобы создать параметр:
- В квадратных скобках укажите код свойства приложения, по которому будет выполняться поиск.
- Добавьте знак =, символ @ и произвольное название параметра на русском или латинице.
- Чтобы искать элементы по нескольким параметрам, объедините условия операторами AND или OR. Подробнее читайте в разделе «Логические операторы».

При работе с запросом, содержащим параметры, пользователь может:
- указать значения в появившихся полях и запустить поиск;
- сохранить запрос как фильтр. Кнопка Сохранить активна внизу окна, если значения параметров не заданы.
начало примера
Пример
[__createdBy] = @Пользователь AND [budget] = @Сумма
В запросе созданы два параметра для поиска сделок по автору и сумме. На форме поиска появятся поля Пользователь и Сумма.
конец примера
Операции поиска
Операция поиска задаёт условие сравнения свойства с указанным значением, другим свойством или результатом функции. В EQL365 используются математические знаки и ключевые слова.
Операции со знаками
Во всех таких операциях слева указывается код свойства, а справа — значение, другое свойство или функция.
Равно — =
Проверяет точное совпадение.
начало примера
Примеры
- [client] = 'Иванов'
Поиск клиента с указанным именем.
- [payment] = [budget]
Поиск элементов, в которых значения полей Оплата и Бюджет совпадают.
- [responsible] = CurrentUser()
Поиск элементов, в которых текущий пользователь указан ответственным.
конец примера
Операцию = нельзя применять к свойствам с подтипом Несколько. Для них используется IN.
Не рекомендуется использовать = со свойствами типа Дата/время, поскольку запрос проверяет точное совпадение значения.
Не равно — <>
Исключает точное совпадение.
начало примера
Примеры
- [product] <> 'Оборудование'
Поиск заказов, в которых в поле Продукт не указано значение Оборудование.
- [payment] <> [budget]
Поиск заказов, в которых значения полей Оплата и Бюджет не совпадают.
- [responsible] <> CurrentUser()
Поиск элементов, в которых текущий пользователь не указан ответственным.
конец примера
Больше — >
Проверяет, что значение свойства больше указанного значения.
начало примера
Примеры
- [price] > 10000
- [payment] > [budget]
- [shipping_date] > Datetime(2025, 1, 31, 12)
конец примера
Больше или равно — >=
Проверяет, что значение свойства больше сравниваемого значения или совпадает с ним.
начало примера
Примеры
- [price] >= 10000
- [payment] >= [budget]
- [shipping_date] >= Datetime('Today')
конец примера
Меньше — <
Проверяет, что значение свойства меньше сравниваемого значения.
начало примера
Примеры
- [price] < 10000
- [payment] < [budget]
- [shipping_date] < Datetime('Today')
конец примера
Меньше или равно — <=
Проверяет, что значение свойства меньше сравниваемого значения или совпадает с ним.
начало примера
Примеры
- [price] <= 10000
- [payment] <= [budget]
- [shipping_date] <= Datetime('Today')
конец примера
Операции с ключевыми словами
Частичное совпадение строки — LIKE
Операция LIKE используется для поиска частичного совпадения текста без учёта регистра. Она находит строки, содержащие указанное значение в любой части.
начало примера
Пример
[responsible] like 'Алекс'
Запрос найдёт элементы, в которых поле Ответственный содержит указанное значение.
конец примера
Полное совпадение строки и поиск по шаблону — LIKEF
Операция LIKEF используется для поиска точного совпадения текста. С помощью специальных символов также можно задать положение искомого значения в строке и сузить результаты поиска.
Операцию LIKEF можно использовать со свойствами следующих типов:
При составлении запроса используйте следующие символы:
- _ обозначает любой один символ. Его можно поставить до или после искомого значения;
- % указывает, что до или после искомого значения может находиться любое количество символов;
_ и % можно комбинировать и использовать в запросе несколько раз для построения сложных шаблонов;
Если искомое значение содержит управляющий символ _ или %, экранируйте его обратной косой чертой \.
начало примера
Примеры
- [client] likef 'Иван'
Запрос ищет записи, где поле Клиент содержит точное значение Иван. Например, Иван Краснов, Иван Круглов и т. д.
- [string] likef '_010203'
Запрос ищет строки, которые начинаются с любого одного символа, после которого следует значение 010203.
- [phone] likef '7912%'
Запрос находит записи, в которых номер телефона начинается с 7912, а после него может находиться любое количество символов.
- [order_name] likef 'Продукты%10_2024'
Запрос находит заказы, название которых начинается со значения Продукты, затем содержит любое количество символов и заканчивается значением 10, одним любым символом и значением 2024.
- [email] likef '_petrov\%@example%'
Запрос находит адреса электронной почты, которые начинаются с одного любого символа, содержат значение petrov%@example и заканчиваются любым доменом. Символ %, входящий в искомое значение, экранируется обратной косой чертой \.
конец примера
Для запросов с операциями LIKE и LIKEF может применяться равнозначность букв Е и Ё при поиске. Администратор системы может отключить эту возможность.
Поле не заполнено — IS NULL и IS EMPTY
Операции используются для поиска элементов, у которых поле не содержит значения. Регистр написания операции не учитывается.
начало примера
Пример
- [budget] is null
- [budget] is empty
Равнозначные запросы для поиска заказов, где не указан бюджет.
конец примера
Вхождение в множество — IN
Операция IN проверяет, содержит ли свойство одно из указанных значений. Регистр при сравнении не учитывается.
Перечислите искомые значения в круглых скобках через запятую, с пробелом или без. Вместо списка значений можно использовать подзапрос.
Если в условии используется функция CurrentUser(), её и код свойства можно указывать с любой стороны операции IN.
начало примера
Примеры
- [order_number] in (6,7,8,9)
Поиск всех заказов, в номерах которых содержатся перечисленные числа.
- [client] in ('Алексей', 'Андрей', 'Иванов')
Поиск всех клиентов с перечисленными именами.
- [__createdBy] in CurrentUser() или CurrentUser() in [__createdBy]
Равнозначные запросы для поиска всех элементов, созданных текущим пользователем системы.
- Пример с подзапросом:
[orders] in (
select [__id]
from [documents.contracts]
where [total] > 10000
)
Выборка всех заказов, в договорах которых в поле Сумма указано значение более 10 000 рублей.
Подробнее о составлении таких выражений читайте в разделе «Подзапросы».
конец примера
Логические операторы
Логические операторы позволяют проверить несколько условий в одном запросе.
Все условия — AND
Оператор AND объединяет несколько условий. В результаты поиска попадут элементы, для которых выполняются все условия.
начало примера
Примеры
- [prepayment] = 1000 and [budget] > 3000
Поиск заказов, в которых предоплата равна 1 000, а бюджет больше 3 000.
- [__createdAt] >= Datetime(2025, 1) and [__createdAt] < Datetime(2025, 3)
Поиск элементов, созданных в январе и феврале 2025 года.
конец примера
Хотя бы одно условие — OR
Оператор OR объединяет несколько условий. В результаты поиска попадут элементы, для которых выполняется хотя бы одно из них.
начало примера
Примеры
- [order_number] in (6,7) or [client] is null
Поиск заказов, у которых номер равен 6 или 7 либо не заполнено поле Клиент.
- Пример с подзапросом и оператором выборки FROM_SELECT_WHERE:
[client] like 'Алекс'
or [orders] in (
from [documents.contracts]
select [__id]
where [total] > 10000
)
Поиск заказов, в которых имя клиента содержит значение Алекс или сумма связанного договора превышает 10 000 рублей.
конец примера
Условие не должно выполняться — NOT
Оператор NOT применяется к одному условию. В результаты поиска попадут элементы, для которых это условие не выполняется.
начало примера
Примеры
- not [payment] is null
Поиск счетов, в которых заполнено поле Оплата.
- not [client_name] in ('Петров', 'Иванов')
Поиск заказов, в которых имя клиента не совпадает ни с одним из указанных значений.
конец примера
Порядок проверки условий
Если в запросе используется несколько логических операций, с помощью круглых скобок можно указать, какое условие должно выполняться первым. Скобки задают порядок вычисления условий в сложном выражении.
начало примера
Примеры
- not ([client_name] like 'Алексей' or [client_name] like 'Андрей')
Поиск заказов, в которых имя клиента не содержит ни значение Алексей, ни значение Андрей.
- (not [client_name] = 'Алексей') and [client_name] like 'Ал'
Поиск заказов, в которых имя клиента не равно Алексей, но содержит значение Ал.
конец примера
Функции
Функции позволяют задать или вычислить значение, которое используется в условии EQL-запроса.
Дата — Datetime()
Функция Datetime() задаёт дату и при необходимости время. Параметры указываются в круглых скобках через запятую в следующем порядке:
- год;
- месяц;
- день;
- час;
- минута;
- секунда;
- часовой пояс.
Обязателен только год. Остальные параметры можно не указывать или пропускать и переходить к другому по порядку. Если время не задано, используются значения 0 для часов, минут и секунд.
Вместо конкретной даты в функцию можно передать:
- Today — текущую дату;
- Now — текущее время.
Важно: запись даты функцией Datetime(2025, 1, 31, 12) равносильна строковой записи '2025-01-31-12'. Для простых фиксированных дат вы можете использовать любой из этих способов.
начало примера
Примеры
- [__createdAt] > Datetime(2024)
Поиск элементов с датой создания позднее 2024 года.
- [__createdAt] > Datetime(2025, 1, 31)
Поиск элементов с датой создания позднее 31 января 2025 года.
- [finish_date] > Datetime(2025, 2, '+09:00')
Поиск заказов, сборку которых завершили позднее февраля 2025 года, с учётом указанного часового пояса.
- [__createdAt] < Datetime('Now')
Поиск элементов с датой создания ранее текущего времени.
- [closing_date] > Datetime('Today')
Поиск сделок с датой закрытия позднее текущей даты.
- [close_date] > Datetime(2025, 1, 31, 12)
Поиск элементов, у которых значение поля Дата закрытия позднее 31 января 2025 года, 12:00.
конец примера
Время — Time()
Функция Time() задаёт время. В круглых скобках через запятую указываются час, минута и секунда. Обязателен только час.
начало примера
Примеры
- [closing_time] < Time(17)
Поиск сделок, закрытых ранее 17:00.
- [closing_time] > Time(12, 30, 00)
Поиск сделок, закрытых позднее 12:30.
конец примера
Период относительно текущей даты — RelativeDatetime()
Функция RelativeDatetime() задаёт временной промежуток относительно текущей даты с учётом часового пояса, установленного в системе. Функцию можно использовать в условиях с операторами = и IN.
Синтаксис функции:
RelativeDatetime('start', 'end')
В функции всегда указываются два параметра:
- start — начало периода;
- end — окончание периода.
Параметры заключаются в одинарные кавычки и разделяются запятой. Для каждого параметра используется цифробуквенное выражение или комбинация таких выражений.
Числовая часть задаёт направление и количество периодов:
- отрицательное значение — прошедший период;
- положительное значение — будущий период;
- 0 — текущий период, знак + перед нулём не требуется.
Доступные буквенные обозначения разряда временного промежутка
|
Параметры вычисляются последовательно. Расчёт выполняется по календарным периодам, а не по фиксированному количеству единиц времени.
Например, если текущая дата — 11 декабря 2025 года, то значение -1m обозначает не предыдущие 30 дней, а прошлый календарный месяц. Началом периода будет 1 ноября 2025 года.
Как вычисляется начало периода
Параметр start задаёт начало периода. Вычисленное значение включается в результаты поиска.
Примеры:
- 0h — с начала текущего часа;
- +1m — с начала следующего месяца;
- -1w+1d — от начала прошлой календарной недели прибавляется один день. Например, если сегодня понедельник, поиск начнётся со вторника прошлой недели.
Как вычисляется окончание периода
Параметр end задаёт окончание периода. При вычислении к наименьшей указанной единице времени добавляется единица. Полученное значение не включается в результаты: учитываются значения, которые меньше него.
Примеры:
- 0h — до конца текущего часа;
- 0d — до конца текущего дня;
- +1m — до конца следующего месяца;
- -1w+1d — расчёт начинается с понедельника прошлой календарной недели. Затем добавляются один день из параметра и ещё один день для определения верхней границы. Получается среда прошлой недели, которая не включается в период. Поэтому поиск выполняется до конца вторника прошлой недели.
Начало периода должно быть меньше его окончания. Если начало больше окончания или совпадает с ним, пользователь увидит ошибку о неверном формате относительных дат.
начало примера
Примеры
- [date] IN RelativeDatetime('0d', '0d')
Поиск за текущую дату.
- [date] IN RelativeDatetime('-1d', '-1d')
Поиск за предыдущий день.
- [date] IN RelativeDatetime('0w', '0w')
Поиск за текущую неделю.
- [date] IN RelativeDatetime('-1w', '-1w')
Поиск за прошлую неделю.
- [date] IN RelativeDatetime('-7d', '-1d')
Поиск за предыдущие семь дней.
- [date] IN RelativeDatetime('+1w', '+1w')
Поиск за следующую неделю.
- [date] IN RelativeDatetime('-1w+2d', '-1w+3d')
Поиск с прошлой среды до конца прошлого четверга.
- [date] IN RelativeDatetime('-1m', '+1m')
Поиск с начала прошлого месяца до конца следующего месяца.
- [__createdAt] IN RelativeDatetime('-1m','0d')
Поиск всех элементов, созданных с начала прошлого месяца до текущей даты.
- [date] IN RelativeDatetime('0y+3q','0y')
Поиск элементов начиная с третьего квартала текущего года до конца года.
- [date] IN RelativeDatetime('0y-2m', '0y-1m')
Поиск за последний и предпоследний месяцы прошлого года.
- [date] IN RelativeDatetime('+1y', '+1y0m')
Поиск за первый месяц следующего года.
конец примера
Количество элементов — Count()
Функция Count() подсчитывает количество элементов:
- в свойстве с множественным значением;
- в результатах подзапроса.
В условии сравнения функция указывается перед свойством или подзапросом без пробела.
начало примера
Примеры
- Count([orders]) > 3
Поиск компаний, для которых создано более трёх заказов.
- Примеры с подзапросом:
Count(
from [documents.contracts]
where parent.[__id] in [client]
and [total] > 10000
) > 2
Поиск компаний, для которых создано более двух договоров с суммой в каждом свыше 10 000 рублей.
Count(
from [_clients._contracts]
where parent.[_email] = [_email]
and parent.[_phone] = [_phone]
) > 1
Поиск элементов приложения Контакты, в которых указаны одинаковые адреса электронной почты и номера телефонов.
Во втором и третьем примерах используется вложенный подзапрос с оператором PARENT.
конец примера
Текущий пользователь — CurrentUser()
Функция CurrentUser() возвращает идентификатор пользователя, который выполняет запрос. Полученное значение можно использовать в условии поиска по свойству приложения.
начало примера
Пример
[responsible] = CurrentUser()
Поиск заказов, за которые отвечает текущий пользователь.
конец примера
Элемент коллекции — Refitem()
Функция Refitem() используется для получения определённого или любого элемента из поля типа Произвольное приложение.
Состав функции зависит от задачи.
Чтобы найти записи, у которых в поле содержится ссылка на определённый элемент приложения, укажите:
- код раздела;
- код приложения;
- идентификатор элемента.
Чтобы найти записи, у которых в поле выбрано любое значение из заданного приложения, используйте один из способов:
- укажите только код раздела и код приложения;
- укажите код раздела, код приложения и неопределённый идентификатор элемента.
Параметры заключаются в одинарные кавычки и разделяются запятыми.
начало примера
Примеры
- Поиск записи, связанной с определённым элементом приложения:
[bill] = Refitem(
'documents',
'bills',
'018a8dbb-04cd-7798-a363-aae245148b10'
)
Поиск договоров, у которых в поле Счёт указан элемент с заданным идентификатором из приложения Счета.
- Поиск записей, у которых в поле выбран любой элемент заданного приложения, можно указать только код раздела и код приложения:
[contract] = Refitem('cleints', 'contracts')
Или дополнительно указать неопределённый идентификатор:
[contract] = Refitem(
'clients',
'contracts',
'00000000-0000-0000-0000-000000000000'
)
Оба запроса используются для поиска элементов, у которых в поле Договор выбрана любая запись из приложения Договоры раздела Клиенты.
- Поиск незаполненного поля.
Чтобы найти элементы, у которых поле типа Произвольное приложение не заполнено, используйте операцию IS NULL:
[bill] is null
Поиск договоров, в которых не заполнено поле Счёт.
конец примера
Подзапросы
Подзапрос — это EQL-запрос, вложенный в другой запрос. В составе основного запроса он заключается в круглые скобки.
Операторы выборки в подзапросах
Подзапросы позволяют находить элементы приложений по указанным значениям. Например, с помощью подзапроса можно найти карточки компаний, для которых договор оформлен не позднее определённой даты.
Параметры поиска в подзапросе задаются с помощью следующих операторов:
- SELECT_FROM_WHERE или FROM_SELECT_WHERE — используются для обращения к элементам из других разделов системы, а также к свойствам типа Произвольное приложение;
- FROM_WHERE — используется для выборки элементов по свойствам текущего или другого приложения. Применяется вместе с:
- операторами PARENT или ROOT, которые позволяют установить связь между приложениями и выполнить поиск элементов по указанному свойству;а
- функцией Count(), которая определяет количество элементов, соответствующих условиям поиска.
Синтаксис операторов выборки
В каждом подзапросе указываются:
- Источник данных — код приложения, из которого выбираются данные.
- Свойство для поиска — свойство источника данных, которое используется при поиске.
- Условие поиска — критерий, по которому фильтруются данные.
начало примера
Примеры
- [clients] in (select [__id] from [clients.orders] where [total] > 1000)
Выборка элементов приложения Клиенты, для которых созданы заказы с суммой более 1 000 рублей.
- [contracts] in (select [__id] from [clients.leads] where [__name] = 'ООО Пристань')
Поиск договоров из свойства типа Произвольное приложение, где имя компании совпадает с указанным в запросе.
- Примеры с вложенным подзапрос с оператором PARENT:
count(
from [orders.products]
where parent.[product_number] = [product_number]
) > 1
Выборка элементов приложения Товары с одинаковым значением в поле Артикул.
count(
from [bookstore.book]
where parent.[__id] in [authors]
) > 0
Поиск авторов, в карточке которых указана хотя бы одна книга.
конец примера
Вложенные подзапросы
Подзапросы могут включать другие подзапросы. Для обращения к свойствам приложений с учётом уровня вложенности используются операторы:
- PARENT — обращается к свойствам родительского приложения, которое находится в запросе на один уровень выше;
- ROOT — обращается к свойствам корневого приложения, указанного в начале запроса. Например, это может быть приложение, со страницы которого выполняется EQL-поиск.
count(
где используется:
count(
где используется:
|