CurrentOrdinal (MDX)
Mengembalikan angka perulangan saat ini dalam satu set selama perulangan.
Sintaks
Set_Expression.CurrentOrdinal
Argumen
Set_Expression
Ekspresi Ekspresi Multidminsional (MDX) yang valid yang mengembalikan satu set.
Keterangan
Saat melakukan iterasi melalui set, seperti dengan fungsi Filter (MDX) atau Generate (MDX),fungsi CurrentOrdinal mengembalikan nomor iterasi.
Contoh
Contoh sederhana berikut menunjukkan bagaimana CurrentOrdinal dapat digunakan dengan Generate untuk mengembalikan string yang berisi nama setiap item dalam satu set bersama dengan posisinya dalam set:
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]
Penggunaan praktis CurrentOrdinal terbatas pada perhitungan yang sangat kompleks. Contoh berikut mengembalikan jumlah produk dalam set yang unik, menggunakan fungsi Pesanan untuk memesan tuple yang tidak kosong sebelum menggunakan fungsi Filter . Fungsi CurrentOrdinal digunakan untuk membandingkan dan menghilangkan ikatan.
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]