SELECT deyimi (MDX)
Belirtilen bir küpten veri alır.
[ 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>)
<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 ] )
Bağımsız değişkenler
Set_Expression
Sayı geçerli bir çok boyutlu ifadeler (MDX) ifadesi bir küme.Integer
0 İle 127 arasında bir tamsayı.Cube_Name
Küp adı sağladığı geçerli bir dize.Tuple_Expression
Bir tanımlama grubu sayı geçerli bir çok boyutlu ifadeler (MDX) ifadesi.CellProperty_Name
Bir hücre özellik gösteren geçerli bir dize.DimensionProperty_Name
Boyut özellik gösteren geçerli bir dize.LevelProperty_Name
Temsil düzey özellik geçerli bir dize.MemberProperty_Name
Üye özellik gösteren geçerli bir dize.
Remarks
The <SELECT slicer axis clause> expression must contain members in dimensions and hierarchies other than those referenced in the specified <SELECT query axis clause> expressions.
Küp öznitelik belirtilmezse belirtilen gelen<SELECT query axis clause>ifadeleri ve<SELECT slicer axis clause>değer, parçaların ekseni. dolaylı olarak özniteliğin varsayılan üye eklenir
Subselect deyim NON VISUAL seçeneğinde üyeleri doğru toplamlar, filtre uygulanan toplam tutarken filtre sağlar.Bu, en üst on satış (kişi/ürünler/bölgeler) sorgulamak ve gerçek Satış Toplamı toplam satış iade on üst değeri yerine tüm sorgulanan üyeleri için elde etmek sağlar.Daha fazla bilgi için aşağıdaki örneklere bakın.
Hesaplanan üyeleri de eklenebilir<SELECT sorgusu eksen yan tümce>her bağlantı açık bağlantı dizesi parametresini kullanmasubqueries=1Bkz:Desteklenen XMLA Properties (XMLA)veConnectionString()parametre kullanımı.Örnek subselects hesaplanan üyeleri üzerinde sağlanır.
Autoexists
SELECT deyiminde boyutun iki veya daha fazla öznitelik kullanıldığında, Analysis Services ölçütlerine tüm diğer öznitelikleri için öznitelikleri üyelerine doğru sınırlandırılan emin olmak için öznitelikleri ifadeleri değerlendirir.Örneğin, Coğrafya boyutunun özniteliklerini birlikte çalıştığınızı varsayalım.Tüm üyeleri Şehir döndüren bir ifade olup öznitelik ve üye ülkenin sınırlayarak başka bir ifade öznitelik Avrupa'daki tüm ülkeler için daha sonra bu Avrupa ülkelerine ait şehirler için sınırlandırılan Şehir üyeleri neden olur.Analysis Services'ın bu özelliğini Autoexists olarak adlandırılır ve yalnızca aynı boyut özniteliklerini uygular.Boyut kayıtları dışarıda bir öznitelik ifadesinde başka öznitelik ifadeler eklenmesini önlemek çalışacağından Autoexists öznitelikleri yalnızca aynı boyut için geçerlidir.Autoexists de farklı nitelikleri ifade ortaya çıkan kesişim boyut kayıtlar üzerinde anlaşılması.Aşağıdaki aşağıdaki örneklere bakın:
//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]
Alınan sonuç küme olur:
|
Satıcı satış tutarı |
İskonto tutarı |
PCT indirim |
Dağ-200 |
$14,356,699.36 |
$19,012.71 |
0.13% |
Yol-250 |
$9,377,457.68 |
$4,032.47 |
0.04% |
Dağ-100 |
$8,568,958.27 |
$139,393.27 |
1.63% |
Yol-650 |
$7,442,141.81 |
$39,698.30 |
0.53% |
Yarış-1000 |
$6,723,794.29 |
$166,144.17 |
2.47% |
Yol-550-W |
$3,668,383.88 |
$1,901.97 |
0.05% |
Yol-350-W |
$3,665,932.31 |
$20,946.50 |
0.57% |
HL Mountain çerçeve |
$3,365,069.27 |
$174.11 |
0.01% |
Yol-150 |
$2,363,805.16 |
$0.00 |
0.00% |
Yarış-3000 |
$2,046,508.26 |
$79,582.15 |
3.89% |
Alınan küme ürünleri Preferred10Products; aynı görünüyor bunu Preferred10Products doğrulama küme:
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çlar olarak (Top10SellingProducts, Preferred10Products) her iki kümesini aynıdır
|
Satıcı satış tutarı |
İskonto tutarı |
PCT indirim |
Dağ-200 |
$14,356,699.36 |
$19,012.71 |
0.13% |
Yol-250 |
$9,377,457.68 |
$4,032.47 |
0.04% |
Dağ-100 |
$8,568,958.27 |
$139,393.27 |
1.63% |
Yol-650 |
$7,442,141.81 |
$39,698.30 |
0.53% |
Yarış-1000 |
$6,723,794.29 |
$166,144.17 |
2.47% |
Yol-550-W |
$3,668,383.88 |
$1,901.97 |
0.05% |
Yol-350-W |
$3,665,932.31 |
$20,946.50 |
0.57% |
HL Mountain çerçeve |
$3,365,069.27 |
$174.11 |
0.01% |
Yol-150 |
$2,363,805.16 |
$0.00 |
0.00% |
Yarış-3000 |
$2,046,508.26 |
$79,582.15 |
3.89% |
Önceki örnekte oluşturduğumuz iki: Hesaplanan bir deyim ve başka bir sabit ifade. olarak Bu örnekler, Autoexists farklı özellikler göstermektedir.
Autoexists derin ya da basit ifadeler için uygulanabilir.Derin varsayılan ayardır.Aşağıdaki örnek, derin Autoexists kavramını göstermek.Örneğin biz filtre [Product] tarafından Top10SellingProducts. [Ürün satırı] özniteliğini [Mountain] grup içinde.Her iki öznitelik (parçaların ve eksen) aynı boyuta, [Product] 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 sonucu üretir küme:
|
Satıcı satış tutarı |
İskonto tutarı |
PCT indirim |
Dağ-200 |
$14,356,699.36 |
$19,012.71 |
0.13% |
Dağ-100 |
$8,568,958.27 |
$139,393.27 |
1.63% |
HL Mountain çerçeve |
$3,365,069.27 |
$174.11 |
0.01% |
Dağ-300 |
$1,907,249.38 |
$876.95 |
0.05% |
Dağ-500 |
$1,067,327.31 |
$17,266.09 |
1.62% |
Dağ-400-W |
$592,450.05 |
$303.49 |
0.05% |
LL Mountain çerçeve |
$521,864.42 |
$252.41 |
0.05% |
ML Mountain çerçeve-W |
$482,953.16 |
$206.95 |
0.04% |
ML Mountain çerçeve |
$343,785.29 |
$161.82 |
0.05% |
Bayan Dağ Şortu |
$260,304.09 |
$6,675.56 |
2.56% |
Önceki sonuç küme Mountain-100 ve HL Mountain çerçeve listesinin en üstüne taşınmış Top10SellingProducts ve Mountain-200 listesine yedi newcomers sunuyoruz.Bu üç değerden önceki sonuç kümesinde interspersed
Top10SellingProducts küme sorguyu dilimleme koşulları karşılayan değerlendirildiği için bu derin Autoexists, denir.Derin Autoexists tüm ifadelerin Acınızı olası alan parçaların ifadeler, eksen, alt seçim ifadelerde uygulandıktan sonra karşılamak için değerlendirilecek ve benzeri anlamına gelir.
Ancak bir aşağıdaki örnekte olduğu gibi Preferred10Products, eşdeğer olarak Top10SellingProducts üzerinde çözümleme yapmak 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 sonucu üretir küme:
|
Satıcı satış tutarı |
İskonto tutarı |
PCT indirim |
Dağ-200 |
$14,356,699.36 |
$19,012.71 |
0.13% |
Dağ-100 |
$8,568,958.27 |
$139,393.27 |
1.63% |
HL Mountain çerçeve |
$3,365,069.27 |
$174.11 |
0.01% |
Yukarıdaki sonuçlar, dilimleme yalnızca [Product] [Mountain] grubuna ait olan Preferred10Products bu ürünleri içeren bir sonuçlar verir. [Ürün Preferred10Products sabit bir ifade olduğu için beklendiği gibi satır];.
Bu sonuç küme basit Autoexists da anlaşılır.Bu, çünkü ifade dilimleme yan önce değerlendirilir.Önceki örnekte, deyimi kavramı tanıtmak için bir sabit ifade gösterim amacıyla oldu.
Autoexists davranış, oturum düzeyinde using sırasında değiştirilebilirAutoexistsbağlantı dizesi özellik.Aşağıdaki örnek, yeni bir oturum açma ve ekleyerek başlayanAutoexists=3özelliği bağlantı dizesi.Örneğin yapmak için yeni bir bağlantı açmanız gerekir.Autoexist ayarıyla kadar yürürlükte kalır, bağlantı kurulduktan sonra bağlantı tamamlanı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 sonucu küme şimdi Autoexists basit davranışını gösterir.
|
Satıcı satış tutarı |
İskonto tutarı |
PCT indirim |
Dağ-200 |
$14,356,699.36 |
$19,012.71 |
0.13% |
Dağ-100 |
$8,568,958.27 |
$139,393.27 |
1.63% |
HL Mountain çerçeve |
$3,365,069.27 |
$174.11 |
0.01% |
Autoexists davranışı, AUTOEXISTS kullanılarak değiştirilebilir bağlantı parametresini [1|2|3] = dize; Bkz:Desteklenen XMLA Properties (XMLA)veConnectionString()parametre kullanımı.
Örnekler
Aşağıdaki örnekte toplamını verirMeasures.[Order Quantity]ilk sekiz ay yılın Takvim içerdiği 2003 üzerinden toplanan üye,Dateboyutu arasındaAdventure Works küp.
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]
Anlamak içinNON VISUAL,[bayi satış tutarı] rakamı elde etmek için bir sorgu [Adventure Works] aşağıdaki örnekte olduğu bir tablo burada ürün kategorileri sütunları ve Satıcı iş türü satır.Hem ürün hem de satıcılar için toplam verildiğini unutmayın.
Aşağıdaki seçme deyimini:
select [Category].members on 0,
[Business Type].members on 1
from [Adventure Works]
where [Measures].[Reseller Sales Amount]
Aşağıdaki sonuçlar verir:
|
Tüm ürünler |
Aksesuarlar |
Bisikletler |
Giyecek |
Bileşenler |
Tüm Bayiler |
$80,450,596.98 |
$571,297.93 |
$66,302,381.56 |
$1,777,840.84 |
$11,799,076.66 |
Özel Bike Shop |
$6,756,166.18 |
$65,125.48 |
$6,080,117.73 |
$252,933.91 |
$357,989.07 |
Değer eklendi bayi |
$34,967,517.33 |
$175,002.81 |
$30,892,354.33 |
$592,385.71 |
$3,307,774.48 |
Ambar |
$38,726,913.48 |
$331,169.64 |
$29,329,909.50 |
$932,521.23 |
$8,133,313.11 |
TheAccessories ve elbise ürünleri, değer katan satıcı ve ambar satıcılar için yalnızca veri içeren bir tablo oluşturmak için henüz genel toplamları tutma gibi NON VISUAL kullanarak 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 verir:
|
Tüm ürünler |
Aksesuarlar |
Giyecek |
Tüm Bayiler |
$80,450,596.98 |
$571,297.93 |
$1,777,840.84 |
Değer eklendi bayi |
$34,967,517.33 |
$175,002.81 |
$592,385.71 |
Ambar |
$38,726,913.48 |
$331,169.64 |
$932,521.23 |
Sütun toplamlarını ancak satır toplamlarını tüm [kategori] geçerli toplamını görüntüler görsel olarak bir tablo oluşturmak için aşağıdaki sorgu verilmiş olması:
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]
Nasıl NON VISUAL yalnızca [kategori] için uygulanacağını unutmayın.
Yukarıdaki sorgu aşağıdaki sonuçlar verir:
|
Tüm ürünler |
Aksesuarlar |
Giyecek |
Tüm Bayiler |
$73,694,430.80 |
$506,172.45 |
$1,524,906.93 |
Değer eklendi bayi |
$34,967,517.33 |
$175,002.81 |
$592,385.71 |
Ambar |
$38,726,913.48 |
$331,169.64 |
$932,521.23 |
Önceki sonuçlar karşılaştırıldığında [tüm Bayiler] satır artık görüntülenen değerleri [değer katan bayi] ve [ambar] kadar ekler, ancak [tüm ürünler] sütun görüntülenmeyen dahil olmak üzere tüm ürünler için toplam değeri gösterir görebilirsiniz.
Aşağıdaki örnek, bunlara filtre uygulamak için subselects hesaplanan üyeler kullanılacak gösterilmiştir.İçin bu örnek, yeniden üretmek için gereken bağlantı bağlantı dizesi parametresini kullanmasubqueries=1.
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 verir:
Satıcı satış tutarı |
Satıcı toplam ürün maliyet |
Satıcı brüt kar |
Satıcı brüt işlenir Kütük |
$80,450,596.98 |
$79,980,114.38 |
$470,482.60 |
0.58% |
Değişiklik Geçmişi
Güncelleştirilmiş içerik |
---|
Eklenen Autoexists işlev ve sabit örnekleri açıklaması. |