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]