Anggota Terhitung MDX - Anggota Terhitung Query-Scoped

Berlaku untuk: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Jika anggota terhitung hanya diperlukan untuk satu kueri Ekspresi Multidimensi (MDX), Anda dapat menentukan anggota terhitung tersebut dengan menggunakan kata kunci WITH. Anggota terhitung yang dibuat dengan menggunakan kata kunci WITH tidak ada lagi setelah kueri selesai berjalan.

Seperti yang dibahas dalam topik ini, sintaks kata kunci WITH cukup fleksibel, bahkan memungkinkan anggota terhitung untuk didasarkan pada anggota terhitung lain.

Catatan

Untuk informasi selengkapnya tentang anggota terhitung, lihat Membangun Anggota Terhitung di MDX (MDX).

Sintaks Kata Kunci WITH

Gunakan sintaks berikut untuk menambahkan kata kunci WITH ke pernyataan MDX SELECT:

[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ] SELECT [ * | ( <SELECT query axis clause> [ , <SELECT query axis clause> ... ] ) ]FROM <SELECT subcube clause> [ <SELECT slicer axis clause> ][ <SELECT cell property list clause> ]  
<SELECT WITH clause> ::=  
   ( [ CALCULATED ] MEMBER <CREATE MEMBER body clause>) | <CREATE MEMBER body clause> ::= Member_Identifier AS 'MDX_Expression'  
   [ <CREATE MEMBER property clause> [ , <CREATE MEMBER property clause> ... ] ]  
<CREATE MEMBER property clause> ::=  
   ( MemberProperty_Identifier = Scalar_Expression )  
  

Dalam sintaks untuk kata kunci WITH, Member_Identifier nilainya adalah nama anggota terhitung yang sepenuhnya memenuhi syarat. Nama yang sepenuhnya memenuhi syarat ini mencakup dimensi atau tingkat di mana anggota terhitung dikaitkan. Nilai MDX_Expression mengembalikan nilai anggota yang dihitung setelah nilai ekspresi dievaluasi. Nilai properti sel intrinsik untuk anggota terhitung dapat ditentukan secara opsional dengan memberikan nama properti sel dalam MemberProperty_Identifier nilai dan nilai properti sel dalam Scalar_Expression nilai.

Contoh Kata Kunci WITH

Kueri MDX berikut mendefinisikan anggota terhitung, [Measures].[Special Discount], menghitung diskon khusus berdasarkan jumlah diskon asli.

WITH   
   MEMBER [Measures].[Special Discount] AS  
   [Measures].[Discount Amount] * 1.5  
SELECT   
   [Measures].[Special Discount] on COLUMNS,  
   NON EMPTY [Product].[Product].MEMBERS  ON Rows  
FROM [Adventure Works]  
WHERE [Product].[Category].[Bikes]  

Anda juga dapat membuat anggota terhitung kapan saja dalam hierarki. Misalnya, kueri MDX berikut menentukan [BigSeller] anggota terhitung untuk kubus Penjualan hipotetis. Anggota terhitung ini menentukan apakah toko tertentu memiliki setidaknya 100,00 dalam penjualan unit untuk bir dan anggur. Namun, kueri membuat [BigSeller] anggota terhitung bukan sebagai anggota anak dari [Product] dimensi, tetapi sebaliknya sebagai anggota anak anggota [Beer and Wine] .

WITH   
   MEMBER [Product].[Beer and Wine].[BigSeller] AS  
  IIf([Product].[Beer and Wine] > 100, "Yes","No")  
SELECT  
   {[Product].[BigSeller]} ON COLUMNS,  
   Store.[Store Name].Members ON ROWS  
FROM Sales  
  

Anggota terhitung tidak harus hanya bergantung pada anggota yang ada dalam kubus. Anggota terhitung juga dapat didasarkan pada anggota terhitung lainnya yang ditentukan dalam ekspresi MDX yang sama. Misalnya, kueri MDX berikut menggunakan nilai yang dibuat di anggota terhitung pertama, [Measures].[Special Discount], untuk menghasilkan nilai anggota terhitung kedua, [Measures].[Special Discounted Amount].

WITH   
   MEMBER [Measures].[Special Discount] AS  
   [Measures].[Discount Percentage] * 1.5,   
   FORMAT_STRING = 'Percent'  
  
   MEMBER [Measures].[Special Discounted Amount] AS  
   [Measures].[Reseller Average Unit Price] * [Measures].[Special Discount],   
   FORMAT_STRING = 'Currency'  
  
SELECT   
   {[Measures].[Special Discount], [Measures].[Special Discounted Amount]} on COLUMNS,  
   NON EMPTY [Product].[Product].MEMBERS  ON Rows  
FROM [Adventure Works]  
WHERE [Product].[Category].[Bikes]  
  

Lihat juga

Referensi Fungsi MDX (MDX)
Pernyataan SELECT (MDX)
Membuat Anggota Terhitung Session-Scoped (MDX)