Leluhur (MDX)
Fungsi yang mengembalikan leluhur anggota tertentu pada tingkat tertentu atau pada jarak yang ditentukan dari anggota.
Sintaks
Level syntax
Ancestor(Member_Expression, Level_Expression)
Numeric syntax
Ancestor(Member_Expression, Distance)
Argumen
Member_Expression
Ekspresi Ekspresi Multidminsional (MDX) yang valid yang mengembalikan anggota.
Level_Expression
Ekspresi Ekspresi Multidminsional (MDX) yang valid yang mengembalikan tingkat.
Jarak
Ekspresi numerik valid yang menentukan jarak dari anggota yang ditentukan.
Keterangan
Dengan fungsi Ancestor, Anda menyediakan fungsi dengan ekspresi anggota MDX lalu memberikan ekspresi MDX dari tingkat yang merupakan leluhur anggota atau ekspresi numerik yang mewakili jumlah tingkat di atas anggota tersebut. Dengan informasi ini, fungsi Leluhur mengembalikan anggota leluhur pada tingkat tersebut.
Catatan
Untuk mengembalikan set yang berisi anggota leluhur, alih-alih hanya anggota leluhur, gunakan fungsi Ancestors (MDX).
Jika ekspresi tingkat ditentukan, fungsi Ancestor mengembalikan leluhur anggota tertentu pada tingkat yang ditentukan. Jika anggota yang ditentukan tidak berada dalam hierarki yang sama seperti tingkat yang ditentukan, fungsi mengembalikan kesalahan.
Jika jarak ditentukan, fungsi Ancestor mengembalikan leluhur anggota yang ditentukan yang merupakan jumlah langkah yang ditentukan dalam hierarki yang ditentukan oleh ekspresi anggota. Anggota dapat ditentukan sebagai anggota hierarki atribut, hierarki yang ditentukan pengguna, atau dalam beberapa kasus, hierarki induk-anak. Jumlah 1 mengembalikan induk anggota dan sejumlah 2 mengembalikan kakek-nenek anggota (jika ada). Sejumlah 0 mengembalikan anggota itu sendiri.
Catatan
Gunakan bentuk fungsi Leluhur ini untuk kasus di mana tingkat induk tidak diketahui atau tidak dapat dinamai.
Contoh
Contoh berikut menggunakan ekspresi tingkat dan mengembalikan Jumlah Penjualan Internet untuk setiap Provinsi Negara Bagian di Australia dan persentase dari total Jumlah Penjualan Internet untuk Australia.
WITH MEMBER Measures.x AS [Measures].[Internet Sales Amount] /
(
[Measures].[Internet Sales Amount],
Ancestor
(
[Customer].[Customer Geography].CurrentMember,
[Customer].[Customer Geography].[Country]
)
), FORMAT_STRING = '0%'
SELECT {[Measures].[Internet Sales Amount], Measures.x} ON 0,
{
Descendants
(
[Customer].[Customer Geography].[Country].&[Australia],
[Customer].[Customer Geography].[State-Province], SELF
)
} ON 1
FROM [Adventure Works]
Contoh berikut menggunakan ekspresi numerik dan mengembalikan Jumlah Penjualan Internet untuk setiap Provinsi Negara Bagian di Australia dan persentase dari total Jumlah Penjualan Internet untuk semua negara/wilayah.
WITH MEMBER Measures.x AS [Measures].[Internet Sales Amount] /
(
[Measures].[Internet Sales Amount],
Ancestor
([Customer].[Customer Geography].CurrentMember, 2)
), FORMAT_STRING = '0%'
SELECT {[Measures].[Internet Sales Amount], Measures.x} ON 0,
{
Descendants
(
[Customer].[Customer Geography].[Country].&[Australia],
[Customer].[Customer Geography].[State-Province], SELF
)
} ON 1
FROM [Adventure Works]