Aracılığıyla paylaş


Autoexists

Kavramı, autoexistsgerçekten contraposition tüm olası birleşimlerini öznitelik hiyerarşisi üyeleri aynı hiyerarşisinden oluşturma sonucunda mevcut için küpteki varolan hücrelerin küp alanı kısıtlar.Bunun nedeni, bir öznitelik hiyerarşisi üyeleri aynı başka bir özniteliği hiyerarşi üyeleri ile bulunamaz boyut.Zaman iki veya daha fazla öznitelik hiyerarşileri aynı boyut kullanılan öznitelikler Analysis Services bir deyim değerlendirir diğer tüm öznitelikler ölçütlerinden öznitelikleri üyelerine düzgün sınırlandırılan emin olmak için ifadeler.

Örneğin, Coğrafya öznitelikleri ile çalışma varsayalım boyut.Şehir öznitelik tüm üyelerinden döndüren bir ifade ve Country özniteliðini o sınırlar üyelerinden Avrupa'daki tüm ülkeler için başka bir deyim varsa, daha sonra bu Avrupa ülkelerine ait şehirler için Absolutely Şehir üyeleri neden olur.Analysis Services autoexists özelliği nedeniyle budur.Autoexists yalnızca geçerlidir öznitelikleri aynı boyutu dışarıda özniteliğin boyut kayıtlarını engellemeye çalıştığı için ifade tarafından başka bir öznitelik eklenmesini dan ifades.Autoexists boyut satır de farklı nitelikleri ifade ortaya çıkan kesişim kavranabilir.

Hücre varlığı

Aşağıdaki hücreleri her zaman mevcuttur:

  • Diğer aynı boyut hiyerarşileri üyeleri ile çapraz olduğunda her hiyerarşi (tümü) üye.

  • Hesaplanan kendi eşi olan ya da Ebeveynler veya hesaplanan kendi kardeşlerine altlarý geçilmiş, hesaplanan üyeler.

Olmayan varolan hücrelerin sağlama

Var olmayan bir hücre bir sorgu veya isteyen de yok bir hücre hesaplama yanıt olarak sistem tarafından sağlanan bir hücredir küp.Örneğin, şehir öznitelik hiyerarşisi ve Coğrafya boyut ve Internet satış tutarı ölçü ait bir ülke öznitelik hiyerarşisi vardır bir küp varsa, bu küp alanı yalnızca birbirleri ile mevcut üyeleri içerir.Örneğin, şehir öznitelik hiyerarşisi, New York, Londra, Paris, Tokyo ve Melbourne şehirleri içerir; ve ülkeler ABD, İngiltere, Fransa, Japonya ve Avustralya ülke öznitelik hiyerarşisi içerir; sonra küp alanı, Paris ve ABD kesişme alanı (hücre) dahil değildir.

Mevcut hücreleri sorgularken, var olmayan hücreler boş değerlere dönmek; Bu hesaplamalar içeremez ve bu alan için yazdığı bir hesaplama tanımlayamazsınız.Örneğin, aşağıdaki deyim, var olmayan hücreleri içerir.

SELECT [Customer].[Gender].[Gender].Members ON COLUMNS,
{[Customer].[Customer].[Aaron A. Allen]
   ,[Customer].[Customer].[Abigail Clark]} ON ROWS 
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]

Not

Bu sorguyu kullanır üyeleri (küme) (mdx) cinsiyet öznitelik hiyerarşisi üyeleri küme üzerinde dönmek için işlev sütun ekseni ve bu ayarla küme üyeler ile müşteri öznitelik hiyerarşisi satır eksenine SWF'ye.

Zaman, yürütmek önceki sorgu, Aaron a. kesişimindeki hücreninGöktepe ve kadın, null değeri görüntüler.Benzer şekilde, Abigail Clark ve erkek kesişme noktasındaki hücre, bir null görüntüler.Bu hücreleri yok ve bir değer içeremez ancak mevcut hücreleri bir sorgu tarafından döndürülen sonuç görüntülenebilir.

Kullandığınızda, crossjoin (mdx) , çapraz ürün dönmek için işlev öznitelik hiyerarşisi aynı boyut öznitelik hiyerarşileri üyelerinden otomatik-mevcut sınırları gerçekten varolan dizilerini küme için verilen bu dizilerini döndüren tam bir Kartezyen ürün yerine.Örneğin, çalıştırın ve aşağıdaki sorgu yürütme sonuçlar inceleyin.

SELECT CROSSJOIN
   (
      {[Customer].[Country].[United States]},
         [Customer].[State-Province].Members
  ) ON 0 
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]

Not

Dikkat edin, 0 - sütun eksenindeki olan eksen(0) için steno olan sütun eksenindeki atamak için kullanılır.

Önceki sorgu üyeleri için hücreleri birbirleriyle kayıtlı sorgu her öznitelik hiyerarşisi yalnızca döndürür.Önceki sorgu kullanarak yeni de yazılabilir * türevi * (Crossjoin) (mdx) işlev.

SELECT 
   [Customer].[Country].[United States] * 
      [Customer].[State-Province].Members
ON 0 
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]

Önceki sorgu aşağıdaki gibi de yazılabilir:

SELECT [Customer].[State-Province].Members
ON 0 
FROM [Adventure Works]
WHERE (Measures.[Internet Sales Amount],
   [Customer].[Country].[United States])

Hücre değerleri döndürülen olacaktır özdeş, sonuç küme meta veriler farklı olsa da.Örneğin, önceki sorguyu ülke hiyerarşi parçaların eksen (where yan tümce tümce tümcesinde) taşındı ve bu nedenle sonuç küme açıkça görünmüyor.

Each of these three previous queries demonstrates the effect of the auto-exists behavior in SQL Server Analysis Services.

Derin ve yüzeysel Autoexists

Autoexists can be applied to the expressions as Deep or Shallow.Deep Autoexists means that all expressions will be evaluated to meet the deepest possible space after applying the slicer expressions, the sub select expressions in the axis, and so on.Shallow Autoexists means that external expressions are evaluated before the current expression and those results are passed to the current expression.Derin autoexists varsayılan ayardır.

Aşağıdaki senaryo ve örnekler farklı türde Autoexistss göstermek için yardımcı olur.Aşağıdaki örneklerde, iki adet oluşturulacak: bir hesaplanmış ifade diğeri sabit bir ifade olarak.

//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:

 

Bayi satış tutarı

İskonto tutarı

pct iskonto

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%

Touring-1000

$6,723,794.29

$166,144.17

2.47%

Road 550 w

$3,668,383.88

$1,901.97

0.05%

Road 350 w

$3,665,932.31

$20,946.50

0.57%

hl Sıradağlar çerçeve

$3,365,069.27

$174.11

0.01%

Yol-150

$2,363,805.16

$0.00

0.00%

Touring-3000

$2,046,508.26

$79,582.15

3.89%

Alınan küme ürünleri Preferred10Products; aynı görünüyor Bu nedenle, Preferred10Products küme doğrulanıyor:

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 gibi her sonuçlar, (Top10SellingProducts, Preferred10Products) her iki kümesini aynıdır

 

Bayi satış tutarı

İskonto tutarı

pct iskonto

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%

Touring-1000

$6,723,794.29

$166,144.17

2.47%

Road 550 w

$3,668,383.88

$1,901.97

0.05%

Road 350 w

$3,665,932.31

$20,946.50

0.57%

hl Sıradağlar çerçeve

$3,365,069.27

$174.11

0.01%

Yol-150

$2,363,805.16

$0.00

0.00%

Touring-3000

$2,046,508.26

$79,582.15

3.89%

Aşağıdaki örnek, derin Autoexists kavramını gösterecektir.Örnekte [Product] tarafından Top10SellingProducts filtre.[Ürün satırı] öznitelik [Sıradağlar] grubunda olanlar için.Not her iki öznitelikleri (parçaların ve eksen) aynı ait boyut, [Product].

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üme üretir:

 

Bayi satış tutarı

İskonto tutarı

pct iskonto

Dağ-200

$14,356,699.36

$19,012.71

0.13%

Dağ-100

$8,568,958.27

$139,393.27

1.63%

hl Sıradağlar ç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 Sıradağlar çerçeve

$521,864.42

$252.41

0.05%

ml Sıradağlar çerçeve-w

$482,953.16

$206.95

0.04%

ml Sıradağlar çerçeve

$343,785.29

$161.82

0.05%

Bayan Dağ Şortu

$260,304.09

$6,675.56

2.56%

Yukarıdaki sonuç küme Top10SellingProducts ve Dağ-200 listesine de yedi yeni gelenlerin Mountain-100 ve hl Sıradağlar çerçeve listesinin en üstüne taşımış sunuyoruz.Bu üç değerden önceki sonuç küme interspersed.

Çünkü Top10SellingProducts küme sorgu dilimleme koşullarını karşılamak üzere değerlendirilir bu derin Autoexists denir.Acınızı olası alan parçaların ifadeler uygulandıktan sonra karşılamak için tüm ifadelerin değerlendirilecek, alt seçin ifadelerde derin Autoexists anlamına gelir eksenve benzeri.

Ancak, bir aşağıdaki örnekte olduğu gibi Preferred10Products, eşdeğer olarak Top10SellingProducts üzerinden analiz yapmak üzere açabilmesi 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üme üretir:

 

Bayi satış tutarı

İskonto tutarı

pct iskonto

Dağ-200

$14,356,699.36

$19,012.71

0.13%

Dağ-100

$8,568,958.27

$139,393.27

1.63%

hl Sıradağlar çerçeve

$3,365,069.27

$174.11

0.01%

Yukarıdaki sonuçlarında dilimleme yalnızca Preferred10Products [Product] [Sıradağlar] grubuna ait olan bu ürünleri içeren bir sonuçlar verir.[Ürün satırı]; Preferred10Products sabit bir ifade olduğu için beklendiği gibi.

Bu sonuç küme yüzeysel Autoexists da anlaşılır.Bu, çünkü ifade dilimleme yan tümce tümce önce değerlendirilir.Önceki örnekte, ifade kavramını tanıtmak için resmi amaçlar için sabit bir ifade oldu.

Autoexists davranış oturum düzey kullanarak değiştirilebilir Autoexists bağlantı dize özellik.Aşağıdaki örnek, yeni bir oturum açarak ve ekleyerek başlar Autoexists=3 bağlantı özellikne dize.Örnek yapmak için yeni bir bağlantı açmanız gerekir.Kadar yürürlükte kalacak Autoexist ayarı ile 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 sonuç küme şimdi Autoexists basit davranışını gösterir.

 

Bayi satış tutarı

İskonto tutarı

pct iskonto

Dağ-200

$14,356,699.36

$19,012.71

0.13%

Dağ-100

$8,568,958.27

$139,393.27

1.63%

hl Sıradağlar ç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 özellikleri (xmla) ve ConnectionString için parametre kullanımı.