Перейти к основному содержимому Перейти к дополнительному содержимому

Модификаторы множества с использованием функций множества

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

В таких случаях следует использовать функции множества элементов P() и E(). Они возвращают множества элементов с возможными и исключенными значениями поля соответственно. Внутри скобок можно указать рассматриваемое поле и выражение множества, которое определяет область действия. Пример.

P({1<Year = {2021}>} Customer)

Это выражение вернет множество клиентов, у которых были транзакции в 2021 году. Затем результат можно использовать в модификаторе множества. Пример.

Sum({<Customer = P({1<Year = {2021}>} Customer)>} Amount)

Это выражение множества выбирает указанных клиентов, но не ограничивает выборку 2021 годом.

Эти функции не могут использоваться в других выражениях.

Кроме того, внутри функций множества элементов можно использовать только натуральные множества. Это множество записей, которое можно определить путем простой выборки.

Например, множество, заданное значением {1-$}, не всегда можно определить путем выборки, следовательно, оно не является натуральным. При использовании этих функций с ненатуральными множествами, результаты могут быть неудовлетворительными.

Примеры: Выражения диаграммы для модификаторов множества с использованием функций множества

Примеры Результаты
sum( {$<Customer = P({1<Product={'Shoe'}>} Customer)>} Sales )

Возвращает продажи для текущей выборки, но только для тех клиентов, которые когда-либо покупали продукт «Shoe». Здесь функция элемента P( ) возвращает список возможных клиентов, подразумеваемых выборкой «Shoe» в поле Product.

sum( {$<Customer = P({1<Product={'Shoe'}>})>} Sales )

Так же, как выше. Если в функции элемента поле опущено, функция вернет возможные значения для поля, указанного во внешнем назначении.

sum( {$<Customer = P({1<Product={'Shoe'}>} Supplier)>} Sales )

Возвращает продажи для текущей выборки, но только для тех клиентов, которые когда-либо поставляли продукт «Shoe», то есть клиент также является поставщиком. Здесь функция элемента P( ) возвращает список возможных поставщиков, подразумеваемых выборкой «Shoe» в поле Product. Список поставщиков затем используется в качестве выборки в поле Customer.

sum( {$<Customer = E({1<Product={'Shoe'}>})>} Sales )

Возвращает продажи для текущей выборки, но только для тех клиентов, которые никогда не покупали продукт «Shoe». Здесь функция элемента E( ) возвращает список исключенных клиентов, которые исключены выборкой «Shoe» в поле Product.

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!