Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Возвращает номер текущей итерации в наборе во время итерации.
Синтаксис
Set_Expression.CurrentOrdinal
Аргументы
Set_Expression
Допустимое многомерное выражение, возвращающее набор.
Замечания
При итерации по набору, например с функциями фильтра (многомерных выражений) или создания (многомерных выражений), функция CurrentOrdinal возвращает номер итерации.
Примеры
В следующем простом примере показано, как CurrentOrdinal можно использовать с помощью Generate для возврата строки, содержащей имя каждого элемента в наборе, а также его положение в наборе:
WITH SET MySet AS [Customer].[Customer Geography].[Country].MEMBERS
MEMBER MEASURES.CURRENTORDINALDEMO AS
GENERATE(MySet, CSTR(MySet.CURRENTORDINAL) + ") " + MySet.CURRENT.ITEM(0).NAME, ", ")
SELECT MEASURES.CURRENTORDINALDEMO ON 0
FROM [Adventure Works]
Практически CurrentOrdinal используется только в очень сложных вычислениях. В следующем примере возвращается количество продуктов в наборе уникальных, используя функцию Order для упорядочивания непустых кортежей перед использованием функции фильтра . Функция CurrentOrdinal используется для сравнения и устранения связей.
WITH MEMBER [Measures].[PrdTies] AS Count
(Filter
(Order
(NonEmpty
([Product].[Product].[Product].Members
, {[Measures].[Reseller Order Quantity]}
)
, [Measures].[Reseller Order Quantity]
, BDESC
) AS OrdPrds
, NOT((OrdPrds.CurrentOrdinal < OrdPrds.Count
AND [Measures].[Reseller Order Quantity] =
( [Measures].[Reseller Order Quantity]
, OrdPrds.Item
(OrdPrds.CurrentOrdinal
)
)
)
OR (OrdPrds.CurrentOrdinal > 1
AND [Measures].[Reseller Order Quantity] =
([Measures].[Reseller Order Quantity]
, OrdPrds.Item
(OrdPrds.CurrentOrdinal-2)
)
)
))
)
SELECT {[Measures].[PrdTies]} ON 0
FROM [Adventure Works]
См. также
Справочник по функции многомерных выражений (многомерные выражения)