Поделиться через


NonEmpty (многомерные выражения)

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

Синтаксис

NONEMPTY(set_expression1 [,set_expression2])

Аргументы

  • set_expression1
    Допустимое многомерное выражение, возвращающее набор.

  • set_expression2
    Допустимое многомерное выражение, возвращающее набор.

Замечания

Эта функция возвращает непустые кортежи из первого заданного кортежа, полученные с учетом кортежей второго набора. Функция NonEmpty отслеживает вычисления и сохраняет повторяющиеся кортежи. Если второй набор не предоставлен, выражение рассматривается в контексте текущих координат элементов иерархий атрибута и мер в кубе.

ПримечаниеПримечание

Эту функцию следует использовать вместо устаревшей функции NonEmptyCrossjoin (многомерные выражения).

Важное примечаниеВажно!

Непустота — характеристика ячеек, на которые ссылаются кортежи, а не самих кортежей.

Примеры

В следующем запросе показан простой пример функции NonEmpty, возвращающей всех заказчиков, у которых на 1 июля 2001 года мера «Продажи через Интернет — сумма продаж» не равна NULL:

SELECT [Measures].[Internet Sales Amount] ON 0,

NONEMPTY(

[Customer].[Customer].[Customer].MEMBERS

, {([Date].[Calendar].[Date].&[20010701], [Measures].[Internet Sales Amount])}

)

ON 1

FROM [Adventure Works]

В следующем примере возвращается набор кортежей, включающий заказчиков и даты покупки. Функции Filter и NonEmpty используются для поиска даты последней покупки каждого заказчика:

WITH SET MYROWS AS FILTER

(NONEMPTY

([Customer].[Customer Geography].[Customer].MEMBERS

* [Date].[Date].[Date].MEMBERS

, [Measures].[Internet Sales Amount]

) AS MYSET

, NOT(MYSET.CURRENT.ITEM(0)

IS MYSET.ITEM(RANK(MYSET.CURRENT, MYSET)).ITEM(0))

)

SELECT [Measures].[Internet Sales Amount] ON 0,

MYROWS ON 1

FROM [Adventure Works]