Turunan (MDX)
Mengembalikan set turunan anggota pada tingkat atau jarak tertentu, secara opsional termasuk atau mengecualikan turunan di tingkat lain.
Sintaks
Member expression syntax using a level expression
Descendants(Member_Expression [ , Level_Expression [ ,Desc_Flag ] ] )
Member expression syntax using a numeric expression
Descendants(Member_Expression [ , Distance [ ,Desc_Flag ] ] )
Set expression syntax using a level expression
Descendants(Set_Expression [ , Level_Expression [ ,Desc_Flag ] ] )
Member expression syntax using a numeric expression
Descendants(Set_Expression [ , Distance [ ,Desc_Flag ] ] )
Argumen
Member_Expression
Ekspresi Ekspresi Multidminsional (MDX) yang valid yang mengembalikan anggota.
Set_Expression
Ekspresi Ekspresi Multidminsional (MDX) yang valid yang mengembalikan satu set.
Level_Expression
Ekspresi Ekspresi Multidminsional (MDX) yang valid yang mengembalikan tingkat.
Jarak
Ekspresi numerik valid yang menentukan jarak dari anggota yang ditentukan.
Desc_Flag
Ekspresi string yang valid yang menentukan bendera deskripsi yang membedakan di antara kumpulan keturunan yang mungkin.
Keterangan
Jika tingkat ditentukan, fungsi Turunan mengembalikan set yang berisi turunan anggota yang ditentukan atau anggota dari set yang ditentukan, pada tingkat tertentu, secara opsional dimodifikasi oleh bendera yang ditentukan dalam Desc_Flag.
Jika Jarak ditentukan, fungsi Turunan mengembalikan set yang berisi turunan anggota yang ditentukan atau anggota dari set yang ditentukan yang merupakan jumlah tingkat yang ditentukan menjauh dalam hierarki anggota yang ditentukan, secara opsional dimodifikasi oleh bendera yang ditentukan dalam Desc_Flag. Biasanya, Anda menggunakan fungsi ini dengan argumen Jarak untuk menangani hierarki yang tidak jelas. Jika jarak yang ditentukan adalah nol (0), fungsi mengembalikan set yang hanya terdiri dari anggota yang ditentukan atau set yang ditentukan.
Jika ekspresi set ditentukan, fungsi Turunan diselesaikan satu per satu untuk setiap anggota set, dan set dibuat lagi. Dengan kata lain, sintaksis yang digunakan untuk fungsi Descendants secara fungsional setara dengan fungsi MDX Generate .
Jika tidak ada tingkat atau jarak yang ditentukan, nilai default untuk tingkat yang digunakan oleh fungsi ditentukan dengan memanggil fungsi Tingkat (<<Anggota>>. Tingkat) untuk anggota yang ditentukan (jika anggota ditentukan) atau dengan memanggil fungsi Tingkat untuk setiap anggota set yang ditentukan (jika satu set ditentukan). Jika tidak ada ekspresi tingkat, jarak, atau bendera yang ditentukan, fungsi akan berfungsi seolah-olah sintaks berikut digunakan:
Descendants
(
Member_Expression ,
Member_Expression.Level ,
SELF_BEFORE_AFTER
)
Jika tingkat ditentukan dan bendera deskripsi tidak ditentukan, fungsi akan berfungsi seolah-olah sintaks berikut digunakan.
Descendants
(
Member_Expression ,
Level_Expression,
SELF
)
Dengan mengubah nilai bendera deskripsi, Anda dapat menyertakan atau mengecualikan turunan pada tingkat atau jarak yang ditentukan, anak-anak sebelum atau setelah tingkat atau jarak yang ditentukan (hingga node daun), dan anak daun terlepas dari tingkat atau jarak yang ditentukan. Tabel berikut ini menjelaskan bendera yang diizinkan dalam argumen Desc_Flag .
Bendera | Deskripsi |
---|---|
DIRI | Mengembalikan hanya anggota turunan dari tingkat yang ditentukan atau pada jarak yang ditentukan. Fungsi ini mencakup anggota yang ditentukan, jika tingkat yang ditentukan adalah tingkat anggota yang ditentukan. |
AFTER | Mengembalikan anggota turunan dari semua tingkat subordinat ke tingkat atau jarak yang ditentukan. |
BEFORE | Mengembalikan anggota turunan dari semua tingkat antara anggota yang ditentukan dan tingkat yang ditentukan, atau pada jarak yang ditentukan. Ini termasuk anggota yang ditentukan, tetapi tidak menyertakan anggota dari tingkat atau jarak yang ditentukan. |
BEFORE_AND_AFTER | Mengembalikan anggota turunan dari semua tingkat subordinat ke tingkat anggota yang ditentukan. Ini termasuk anggota yang ditentukan, tetapi tidak menyertakan anggota dari tingkat yang ditentukan atau pada jarak yang ditentukan. |
SELF_AND_AFTER | Mengembalikan anggota turunan dari tingkat yang ditentukan atau pada jarak yang ditentukan dan semua tingkat subordinat ke tingkat yang ditentukan, atau pada jarak yang ditentukan. |
SELF_AND_BEFORE | Mengembalikan anggota turunan dari tingkat yang ditentukan atau pada jarak yang ditentukan, dan dari semua tingkat antara anggota yang ditentukan dan tingkat yang ditentukan, atau pada jarak yang ditentukan, termasuk anggota yang ditentukan. |
SELF_BEFORE_AFTER | Mengembalikan anggota turunan dari semua tingkat subordinat ke tingkat anggota yang ditentukan, dan menyertakan anggota yang ditentukan. |
DAUN | Mengembalikan anggota turunan daun antara anggota yang ditentukan dan tingkat yang ditentukan, atau pada jarak yang ditentukan. |
Contoh
Contoh berikut mengembalikan anggota yang ditentukan (Amerika Serikat), dan anggota antara anggota yang ditentukan (Amerika Serikat) dan anggota tingkat sebelum tingkat yang ditentukan (Kota), Contoh mengembalikan anggota yang ditentukan itu sendiri (Amerika Serikat), dan anggota tingkat Provinsi Negara Bagian (tingkat sebelum tingkat Kota). Contoh ini mencakup argumen yang dikomentari untuk memungkinkan Anda menguji argumen lain dengan mudah untuk fungsi ini.
SELECT Descendants
([Geography].[Geography].[Country].&[United States]
//, [Geography].[Geography].[Country]
, [Geography].[Geography].[City]
//, [Geography].[Geography].Levels (3)
//, SELF
//, AFTER
, BEFORE
// BEFORE_AND_AFTER
//, SELF_AND_AFTER
//, SELF_AND_BEFORE
//,SELF_BEFORE_AFTER
//,LEAVES
) ON 0
FROM [Adventure Works]
Contoh berikut mengembalikan rata-rata harian Measures.[Gross Profit Margin]
pengukuran, dihitung sepanjang hari setiap bulan dalam tahun fiskal 2003, dari kubus Adventure Works . Fungsi Turunan mengembalikan serangkaian hari yang ditentukan dari anggota [Date].[Fiscal]
hierarki saat ini.
WITH MEMBER Measures.[Avg Gross Profit Margin] AS Avg
(
Descendants( [Date].[Fiscal].CurrentMember,
[Date].[Fiscal].[Date]
),
Measures.[Gross Profit Margin]
)
SELECT
Measures.[Avg Gross Profit Margin] ON COLUMNS,
[Date].[Fiscal].[Month].Members ON ROWS
FROM [Adventure Works]
WHERE ([Date].[Fiscal Year].&[2003])
Contoh berikut menggunakan ekspresi tingkat dan mengembalikan Jumlah Penjualan Internet untuk setiap Provinsi Negara Bagian di Australia, dan mengembalikan persentase dari total Jumlah Penjualan Internet untuk Australia untuk setiap Provinsi Negara Bagian. Contoh ini menggunakan fungsi Item untuk mengekstrak tuple pertama (dan hanya) dari set yang dikembalikan oleh fungsi Ancestors .
WITH MEMBER Measures.x AS
[Measures].[Internet Sales Amount] /
( [Measures].[Internet Sales Amount],
Ancestors
( [Customer].[Customer Geography].CurrentMember,
[Customer].[Customer Geography].[Country]
).Item (0)
), 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]