MDX Veri İşleme - SELECT

Belirli bir küpten veri alır.

Syntax

  
[ WITH <SELECT WITH clause>   
   [ , <SELECT WITH clause>...n ]   
]   
SELECT   
     [ *   
    | ( <SELECT query axis clause>   
                  [ , <SELECT query axis clause>,...n ]   
            )   
            ]  
FROM   
   <SELECT subcube clause>   
      [ <SELECT slicer axis clause> ]  
      [ <SELECT cell property list clause> ]  
  
<SELECT WITH clause> ::=  
     ( CELL CALCULATION <CREATE CELL CALCULATION body clause> )   
   | ( [ CALCULATED ] MEMBER <CREATE MEMBER body clause>)   
   | ( SET <CREATE SET body clause>)  
   | ( MEASURE = <measure body clause> )  
  
<SELECT query axis clause> ::=  
   [ NON EMPTY ] Set_Expression  
   [ <SELECT dimension property list clause> ]   
      ON   
            Integer_Expression   
       | AXIS(Integer)   
       | COLUMNS   
       | ROWS   
       | PAGES   
       | SECTIONS   
       | CHAPTERS   
  
<SELECT subcube clause> ::=  
      Cube_Name   
   | [NON VISUAL] (SELECT   
                  [ *   
       | ( <SELECT query axis clause> [ ,   
           <SELECT query axis clause>,...n ] )   
         ]   
            FROM   
         <SELECT subcube clause>   
         <SELECT slicer axis clause> )  
  
<SELECT slicer axis clause> ::=   
      WHERE Tuple_Expression  
  
<SELECT cell property list clause> ::=   
   [ CELL ] PROPERTIES CellProperty_Name   
      [ , CellProperty_Name,...n ]  
  
<SELECT dimension property list clause> ::=  
   [DIMENSION] PROPERTIES   
      (DimensionProperty_Name   
         [,DimensionProperty_Name,...n ] )   
    | (LevelProperty_Name   
         [, LevelProperty_Name,...n ] )   
    | (MemberProperty_Name   
         [, MemberProperty_Name,...n ] )  

Arguments

Set_Expression
Bir küme döndüren geçerli bir Çok Boyutlu İfadeler (MDX) ifadesi.

tamsayı
0 ile 127 arasında bir tamsayı.

Cube_Name
Küp adı sağlayan geçerli bir dizidir.

Tuple_Expression
Bir tuple döndüren geçerli bir Çok Boyutlu İfadeler (MDX) ifadesi.

CellProperty_Name
Bir hücre özelliğini temsil eden geçerli bir dizidir.

DimensionProperty_Name
Boyut özelliğini temsil eden geçerli bir dizidir.

LevelProperty_Name
Seviye özelliğini temsil eden geçerli bir dizedir.

MemberProperty_Name
Bir üye özelliğini temsil eden geçerli bir dizedir.

Remarks

İfade, <SELECT slicer axis clause> belirtilen <SELECT query axis clause> ifadelerde referans verilen boyutlar ve hiyerarşiler dışındaki üyeleri içermelidir.

Küpteki bir öznitelik, belirtilen <SELECT query axis clause> ifadelerden ve <SELECT slicer axis clause> değerden çıkarılırsa, özniteliğin varsayılan üyesi dolaylı olarak dilimleyici eksenine eklenir.

Alt seçim ifadesindeki GÖRSEL OLMAYAN seçenek, gerçek toplamları filtrelenmiş toplamlar yerine tutarak üyeleri filtrelemenize olanak tanır. Bu, en iyi on satışı (kişi/ürün/bölge) sorgulayıp tüm sorgulanan üyelerin gerçek satış toplamını elde etmenizi sağlar; en iyi on kişinin toplam satış değeri yerine. Daha fazla bilgi için aşağıdaki örneklere bakınız.

Hesaplanan üyeler, bağlantı açıldığında bağlantı dizesi parametresi subqueries=1 kullanılarak SELECT sorgu ekseni maddesine> dahil <edilebilir; Desteklenen XMLA Özellikleri (XMLA) ve ConnectionString parametre kullanımı için bkz. Alt seçimlerde hesaplanan üyeler üzerine bir örnek verilmiştir.

Otomatik olarak var olan

Bir SELECT ifadesinde boyutun iki veya daha fazla özniteliği kullanıldığında, Analiz Hizmetleri bu niteliklerin ifadelerini değerlendirerek bu özelliklerin üyelerinin diğer tüm niteliklerin kriterlerini karşılamak için doğru şekilde sınırlandırıldığından emin olur. Örneğin, Coğrafya boyutundaki özniteliklerle çalıştığınızı varsayalım. Eğer bir ifadeniz City özelliğinden tüm üyeleri döndürüyorsa, başka bir ifade ise Country attrifikasyonundan üyeleri Avrupa'daki tüm ülkeler/bölgelerle sınırlıyorsa, bu durumda City üyeleri sadece Avrupa ülkelerine/bölgelerine ait şehirlerle sınırlı kalır. Analiz Hizmetlerinin bu özelliğine Otomatik Var Olanlar denir ve yalnızca aynı boyuttaki öznitelikler için geçerlidir. Otomatik ifadeler yalnızca aynı boyuttaki özniteliklere uygulanır çünkü bir öznitelik ifadesinde dışlanan boyut kayıtlarının diğer öznitelik ifadeleri tarafından eklenmesini engellemeye çalışır. Otomatik varoluşlar, boyut kayıtları üzerindeki farklı öznitelik ifadelerinin kesişimi olarak da anlaşılabilir. Aşağıdaki örneklere bakınız:

//Obtain the Top 10 best reseller selling products by Name  
with member [Measures].[PCT Discount] AS '[Measures].[Discount Amount]/[Measures].[Reseller Sales Amount]', FORMAT_STRING = 'Percent'  
set Top10SellingProducts as 'topcount([Product].[Model Name].children, 10, [Measures].[Reseller Sales Amount])'  
set Preferred10Products as '  
{[Product].[Model Name].&[Mountain-200],  
[Product].[Model Name].&[Road-250],  
[Product].[Model Name].&[Mountain-100],  
[Product].[Model Name].&[Road-650],  
[Product].[Model Name].&[Touring-1000],  
[Product].[Model Name].&[Road-550-W],  
[Product].[Model Name].&[Road-350-W],  
[Product].[Model Name].&[HL Mountain Frame],  
[Product].[Model Name].&[Road-150],  
[Product].[Model Name].&[Touring-3000]  
}'  
select {[Measures].[Reseller Sales Amount], [Measures].[Discount Amount], [Measures].[PCT Discount]} on 0,  
Top10SellingProducts on 1  
from [Adventure Works]  

Elde edilen sonuç kümesi:

Model Adı + Ölçütler Bayi Satış Tutarı İskonto Tutarı PCT İndirimi
Mountain-200 14.356.699,36 USD 19.012,71 ABD Doları 0,13%
Yol-250 $9,377,457,68 4.032,47 ABD doları 0,04%
Mountain-100 8.568.958,27 ABD doları 139.393,27 ABD doları 1,63%
Yol-650 $7,442,141,81 $39,698,30 0,53%
Touring-1000 6.723.794,29 USD $166,144,17 2,47%
Road-550-W $3,668,383,88 1.901,97 ABD doları 0,05%
Yol-350-W $3,665,932,31 $20,946,50 0,57%
HL Dağ Çerçevesi $3,365,069,27 174,11 USD 0,01%
Yol-150 2.363.805,16 USD 0,00 ABD doları 0,00%
Touring-3000 2.046.508,26 USD $79,582,15 3,89%

Elde edilen ürün kümesi Preferred10Products ile aynı gibi görünüyor; bu nedenle Preferred10Products kümesini doğrulama:

with member [Measures].[PCT Discount] AS '[Measures].[Discount Amount]/[Measures].[Reseller Sales Amount]', FORMAT_STRING = 'Percent'  
set Top10SellingProducts as 'topcount([Product].[Model Name].children, 10, [Measures].[Reseller Sales Amount])'  
set Preferred10Products as '  
{[Product].[Model Name].&[Mountain-200],  
[Product].[Model Name].&[Road-250],  
[Product].[Model Name].&[Mountain-100],  
[Product].[Model Name].&[Road-650],  
[Product].[Model Name].&[Touring-1000],  
[Product].[Model Name].&[Road-550-W],  
[Product].[Model Name].&[Road-350-W],  
[Product].[Model Name].&[HL Mountain Frame],  
[Product].[Model Name].&[Road-150],  
[Product].[Model Name].&[Touring-3000]  
}'  
select {[Measures].[Reseller Sales Amount], [Measures].[Discount Amount], [Measures].[PCT Discount]} on 0,  
Preferred10Products on 1  
from [Adventure Works]  

Aşağıdaki sonuçlara göre her iki küme de (Top10SellingProducts, Preferred10Products) aynıdır

Model Adı + Ölçütler Bayi Satış Tutarı İskonto Tutarı PCT İndirimi
Mountain-200 14.356.699,36 USD 19.012,71 ABD Doları 0,13%
Yol-250 $9,377,457,68 4.032,47 ABD doları 0,04%
Mountain-100 8.568.958,27 ABD doları 139.393,27 ABD doları 1,63%
Yol-650 $7,442,141,81 $39,698,30 0,53%
Touring-1000 6.723.794,29 USD $166,144,17 2,47%
Road-550-W $3,668,383,88 1.901,97 ABD doları 0,05%
Yol-350-W $3,665,932,31 $20,946,50 0,57%
HL Dağ Çerçevesi $3,365,069,27 174,11 USD 0,01%
Yol-150 2.363.805,16 USD 0,00 ABD doları 0,00%
Touring-3000 2.046.508,26 USD $79,582,15 3,89%

Önceki örneklerde iki küme oluşturduk: biri hesaplanan ifade, diğeri ise sabit ifade olarak. Bu örnekler, Otomatik Varlıkların farklı türlerini gösteriyor.

Otomatik varoluşlar, ifadelere derin veya yüzeysel uygulanabilir. Varsayılan ayar derin. Aşağıdaki örnekte, derin Autoexists kavramı gösterilmektedir. Örnekte, [Mountain] grubundakiler için [Product].[Product Line] özniteliğine göre Top10SellingProducts'u filtreliyoruz. Her iki özniteliğin de (dilimleyici ve eksen) [Product] aynı boyuta ait olduğunu unutmayın.

with member [Measures].[PCT Discount] AS '[Measures].[Discount Amount]/[Measures].[Reseller Sales Amount]', FORMAT_STRING = 'Percent'  
set Top10SellingProducts as 'topcount([Product].[Model Name].children, 10, [Measures].[Reseller Sales Amount])'  
// Preferred10Products set removed for clarity  
select {[Measures].[Reseller Sales Amount], [Measures].[Discount Amount], [Measures].[PCT Discount]} on 0,  
Top10SellingProducts on 1  
from [Adventure Works]  
where [Product].[Product Line].[Mountain]  

Aşağıdaki sonuç kümesini oluşturur:

Model Adı + Ölçütler Bayi Satış Tutarı İskonto Tutarı PCT İndirimi
Mountain-200 14.356.699,36 USD 19.012,71 ABD Doları 0,13%
Mountain-100 8.568.958,27 ABD doları 139.393,27 ABD doları 1,63%
HL Dağ Çerçevesi $3,365,069,27 174,11 USD 0,01%
Dağ-300 1.907.249,38 ABD doları 876,95 ABD Doları 0,05%
Dağ-500 $1,067,327,31 17.266,09 USD 1,62%
Dağ-400-W $592,450,05 303,49 ABD Doları 0,05%
LL Dağ Çerçevesi $521,864,42 252,41 ABD Doları 0,05%
ML Dağ Çerçevesi-W $482,953,16 206,95 USD 0,04%
ML Dağ Çerçevesi $343,785,29 161,82 USD 0,05%
Kadın Dağı Şortları $260,304,09 $6,675,56 2,56%

Önceki sonuç setinde Top10SellingProducts listesine yedi yeni katılan ve Mountain-200, Mountain-100 ve HL Mountain Frame listenin başına geçti. Önceki sonuç setinde bu üç değer aralı olarak eklenmişti

Top10SellingProducts kümesi sorgunun dilimleme koşullarını karşılayacak şekilde değerlendirildiğinden buna Derin OtomatikLeştirmeler adı verilir. Derin Autoexists, dilimleyici ifadeler, eksendeki alt seçim ifadeleri vb. uygulandıktan sonra tüm ifadelerin, mümkün olan en derin uzayı karşılayacak şekilde değerlendirileceği anlamına gelir.

Ancak, aşağıdaki örnekte olduğu gibi, Top10SellingProducts üzerindeki çözümlemeyi Preferred10Products ile eşdeğer olarak yapabilmek isteyebilirsiniz:

with member [Measures].[PCT Discount] AS '[Measures].[Discount Amount]/[Measures].[Reseller Sales Amount]', FORMAT_STRING = 'Percent'  
set Top10SellingProducts as 'topcount([Product].[Model Name].children, 10, [Measures].[Reseller Sales Amount])'  
set Preferred10Products as '  
{[Product].[Model Name].&[Mountain-200],  
[Product].[Model Name].&[Road-250],  
[Product].[Model Name].&[Mountain-100],  
[Product].[Model Name].&[Road-650],  
[Product].[Model Name].&[Touring-1000],  
[Product].[Model Name].&[Road-550-W],  
[Product].[Model Name].&[Road-350-W],  
[Product].[Model Name].&[HL Mountain Frame],  
[Product].[Model Name].&[Road-150],  
[Product].[Model Name].&[Touring-3000]  
}'  
select {[Measures].[Reseller Sales Amount], [Measures].[Discount Amount], [Measures].[PCT Discount]} on 0,  
Preferred10Products on 1  
from [Adventure Works]  
where [Product].[Product Line].[Mountain]  

Aşağıdaki sonuç kümesini oluşturur:

Model Adı + Ölçütler Bayi Satış Tutarı İskonto Tutarı PCT İndirimi
Mountain-200 14.356.699,36 USD 19.012,71 ABD Doları 0,13%
Mountain-100 8.568.958,27 ABD doları 139.393,27 ABD doları 1,63%
HL Dağ Çerçevesi $3,365,069,27 174,11 USD 0,01%

Yukarıdaki sonuçlarda, dilimleme, [Product].[Product Line] içinde [Mountain] grubunun parçası olan ürünlerden sadece Preferred10Products'ta bulunanları içeren bir sonuç verir; bu da beklenen bir durumdur, çünkü Preferred10Products sabit bir ifadeyi temsil eder.

Bu sonuç kümesi, sığ Otomatik Varoluşlar olarak da anlaşılır. Bunun nedeni, ifadenin dilimleme ifadesinden önce değerlendirilmesidir. Önceki örnekte ifade, kavramı tanıtmak amacıyla çizim amacıyla sabit bir ifadeydi.

Autoexists davranışı, Autoexists bağlantı dizesi özelliği kullanılarak oturum düzeyinde değiştirilebilir. Aşağıdaki örnek, yeni bir oturum açarak ve Autoexists=3 özelliğini bağlantı dizesine ekleyerek başlar. Örneği gerçekleştirmek için yeni bir bağlantı açmanız gerekir. Autoexist ayarıyla bağlantı kurulduğunda, bağlantı bitene kadar etkin kalır.

with member [Measures].[PCT Discount] AS '[Measures].[Discount Amount]/[Measures].[Reseller Sales Amount]', FORMAT_STRING = 'Percent'  
set Top10SellingProducts as 'topcount([Product].[Model Name].children, 10, [Measures].[Reseller Sales Amount])'  
//Preferred10Products set removed for clarity  
select {[Measures].[Reseller Sales Amount], [Measures].[Discount Amount], [Measures].[PCT Discount]} on 0,  
Top10SellingProducts on 1  
from [Adventure Works]  
where [Product].[Product Line].[Mountain]  

Aşağıdaki sonuç kümesi şimdi Autoexists'in sığ davranışını gösterir.

Model Adı + Ölçütler Bayi Satış Tutarı İskonto Tutarı PCT İndirimi
Mountain-200 14.356.699,36 USD 19.012,71 ABD Doları 0,13%
Mountain-100 8.568.958,27 ABD doları 139.393,27 ABD doları 1,63%
HL Dağ Çerçevesi $3,365,069,27 174,11 USD 0,01%

Autoexists davranışı, bağlantı dizesinde AUTOEXISTS=[1|2|3] parametresi kullanılarak değiştirilebilir; Bkz . Desteklenen XMLA Özellikleri (XMLA) ve ConnectionString parametre kullanımı için.

Examples

Aşağıdaki örnek Measures.[Order Quantity] , 2003 takvim yılının ilk sekiz ayı boyunca Date toplanan üyenin toplamını, Adventure Works küpünden geri getirir.

WITH MEMBER [Date].[Calendar].[First8Months2003] AS  
    Aggregate(  
        PeriodsToDate(  
            [Date].[Calendar].[Calendar Year],   
            [Date].[Calendar].[Month].[August 2003]  
        )  
    )  
SELECT   
    [Date].[Calendar].[First8Months2003] ON COLUMNS,  
    [Product].[Category].Children ON ROWS  
FROM  
    [Adventure Works]  
WHERE  
    [Measures].[Order Quantity]  

GÖRSEL OLMAYAN kavramı anlamak için, aşağıdaki örnek, [Adventure Works] sorgusu ile ürün kategorilerinin sütunlar, satıcı iş türlerinin ise satırlar olduğu bir tabloda [Satıcı Satış Miktarı] rakamlarını elde etmektir. Toplamların hem ürünler hem de satıcılar için verildiğini unutmayın.

Aşağıdaki SELECT ifadesi:

select [Category].members on 0,  
[Business Type].members on 1  
from [Adventure Works]  
where [Measures].[Reseller Sales Amount]  

Aşağıdaki sonuçları üretir:

İş Türü + Kategori Tüm Ürünler Aksesuarlar Bisikletler Giyim Bileşenler
Tüm Bayiler $80,450,596,98 $571,297,93 66.302.381,56 ABD doları $1,777,840,84 11.799.076,66 USD
Özel Bisiklet Mağazası 6.756.166,18 USD $65,125,48 $6,080,117,73 $252,933,91 $357,989,07
Katma Değerli Bayi $34,967,517,33 175.002,81 ABD doları $30,892,354,33 $592,385,71 $3,307,774,48
Warehouse 38.726.913,48 ABD doları $331,169,64 29.329.909,50 ABD doları $932,521,23 8.133.313,11 ABD Doları

Yalnızca Aksesuarlar ve Giysi ürünleri, Değer Katma Satıcı ve Depo satıcıları için veri içeren bir tablo oluşturmak için, ancak genel toplamlar GÖRSEL OLMAYAN kullanılarak aşağıdaki şekilde yazılabilir:

select [Category].members on 0,  
[Business Type].members on 1  
from NON VISUAL (Select {[Category].Accessories, [Category].Clothing} on 0,  
{[Business Type].[Value Added Reseller], [Business Type].[Warehouse]} on 1  
from [Adventure Works])  
where [Measures].[Reseller Sales Amount]  

Aşağıdaki sonuçları üretir:

İş Türü + Kategori Tüm Ürünler Aksesuarlar Giyim
Tüm Bayiler $80,450,596,98 $571,297,93 $1,777,840,84
Katma Değerli Bayi $34,967,517,33 175.002,81 ABD doları $592,385,71
Warehouse 38.726.913,48 ABD doları $331,169,64 $932,521,23

Sütunları görsel olarak toplayan ancak satır toplamları için tüm [Category] değerlerinin gerçek toplamını getiren bir tablo oluşturmak için aşağıdaki sorgu verilmelidir:

select [Category].members on 0,  
[Business Type].members on 1  
from NON VISUAL (Select {[Category].Accessories, [Category].Clothing} on 0  
from ( Select {[Business Type].[Value Added Reseller], [Business Type].[Warehouse]} on 0  
from [Adventure Works])  
)  
where [Measures].[Reseller Sales Amount]  

GÖRSEL OLMAYAN öğesinin yalnızca [Category] öğesine nasıl uygulandığına dikkat edin.

Yukarıdaki sorgu aşağıdaki sonuçları üretir:

İş Türü + Kategori Tüm Ürünler Aksesuarlar Giyim
Tüm Satıcılar $73,694,430,80 $506,172,45 $1,524,906,93
Katma Değerli Kurumsal Bayi $34,967,517,33 175.002,81 ABD doları $592,385,71
Depo 38.726.913,48 ABD doları $331,169,64 $932,521,23

Önceki sonuçlarla karşılaştırıldığında, [Tüm Bayiler] satırının artık [Value Added Reseller] ve [Warehouse] için görüntülenen değerlere eklendiğini ancak [Tüm Ürünler] sütununun görüntülenmeyenler de dahil olmak üzere tüm ürünlerin toplam değerini gösterdiğini görebilirsiniz.

Aşağıdaki örnek, hesaplanan üyelerin alt seçimlerde nasıl kullanılacağını ve onları filtrelediğini göstermektedir. Bu örneği yeniden üretebilmek için, bağlantı bağlantı dizesi parametresi subqueries=1 kullanılarak kurulmalıdır.

select Measures.allmembers on 0  
from (  
Select { [Measures].[Reseller Sales Amount]  
, [Measures].[Reseller Total Product Cost]  
, [Measures].[Reseller Gross Profit]  
, [Measures].[Reseller Gross Profit Margin]  
} on 0  
from [Adventure Works]  
)  

Yukarıdaki sorgu aşağıdaki sonuçları üretir:

Bayi Satış Tutarı Satıcı Toplam Ürün Maliyeti Satıcı Brüt Kâr Satıcı Brüt Kâr Marjı
$80,450,596,98 $79,980,114.38 $470,482.60 0.58%