Bagikan melalui


Set Bernama MDX - Membuat Set Bernama Query-Scoped

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

Jika set bernama hanya diperlukan untuk satu kueri Ekspresi Multidimensi (MDX), Anda dapat menentukan set bernama tersebut dengan menggunakan kata kunci WITH. Set bernama 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 mengakomodasi penggunaan fungsi untuk menentukan set bernama.

Catatan

Untuk informasi selengkapnya tentang set bernama, lihat Membangun Set Bernama 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> ::=  
   ( SET Set_Identifier AS 'Set_Expression')  
  

Dalam sintaks untuk kata kunci WITH, Set_Identifier parameter berisi alias untuk set bernama. Parameter Set_Expression berisi ekspresi set yang dirujuk oleh alias set bernama.

Contoh Kata Kunci WITH

Kueri MDX berikut memeriksa penjualan unit berbagai anggur Chardonnay dan Chablis di FoodMart 2000, database sampel untuk Microsoft SQL Server 2000 Analysis Services. Kueri ini, meskipun cukup sederhana dalam hal tataan hasil, panjang dan berat ketika Anda harus pemeliharaan kueri seperti itu.

SELECT  
   {[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chardonnay],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chardonnay],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chardonnay],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chardonnay],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chardonnay],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chablis Wine],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chablis Wine],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chablis Wine],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chablis Wine],   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chablis Wine]} ON COLUMNS,  
   {Measures.[Unit Sales]} ON ROWS  
FROM Sales  

Untuk membuat kueri MDX sebelumnya lebih mudah dipertahankan, Anda bisa membuat set bernama untuk kueri dengan menggunakan kata kunci WITH. Kode berikut menunjukkan cara menggunakan kata kunci WITH untuk membuat set bernama, [ChardonnayChablis], dan bagaimana set bernama membuat pernyataan SELECT lebih pendek dan lebih mudah dipertahankan.

WITH SET [ChardonnayChablis] AS  
   {[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chardonnay],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chardonnay],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chardonnay],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chardonnay],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chardonnay],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chablis Wine],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chablis Wine],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chablis Wine],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chablis Wine],  
   [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chablis Wine]}  
  
SELECT  
   [ChardonnayChablis] ON COLUMNS,  
   {Measures.[Unit Sales]} ON ROWS  
FROM Sales  

Menggunakan Fungsi Bersama dengan Kata Kunci WITH

Meskipun Anda dapat secara eksplisit menentukan setiap anggota set bernama, pendekatan ini dapat menghasilkan pernyataan panjang. Untuk mempermudah pembuatan dan pemeliharaan set bernama, Anda dapat menggunakan fungsi MDX untuk menentukan anggota.

Misalnya, contoh kueri MDX berikut menggunakan fungsi Filter, CurrentMember, dan Name MDX dan fungsi InStr VBA untuk membuat [ChardonnayChablis] set bernama. Versi [ChardonnayChablis] set bernama ini sama dengan versi yang ditentukan secara eksplisit yang ditunjukkan sebelumnya dalam topik ini.

WITH SET [ChardonnayChablis] AS  
   'Filter([Product].Members, (InStr(1, [Product].CurrentMember.Name, "chardonnay") <> 0) OR (InStr(1, [Product].CurrentMember.Name, "chablis") <> 0))'  
  
SELECT  
   [ChardonnayChablis] ON COLUMNS,  
   {Measures.[Unit Sales]} ON ROWS  
FROM Sales  
  

Lihat juga

Pernyataan SELECT (MDX)
Membuat Set Bernama Session-Scoped (MDX)