Aracılığıyla paylaş


Kapsam'ı ve içerik (MDX) yönetme

In Microsoft SQL Server Analysis Services, a Multidimensional Expressions (MDX) script can apply to the entire cube, or to specific portions of the cube, at specific points within the execution of the script.MDX komut dosyası için bir küp, hesaplama geçiş içinde hesaplamalar katmanlı bir yaklaşım alabilir.

Not

Hesaplama geçiş hesaplamaları nasıl etkileyebileceği hakkında daha fazla bilgi için bkz: Anlama geçiş sırası ve çözme sırası (MDX).

hesaplama geçişi, kapsam ve bir MDX komut içeriğinde denetlemek için , özellikle CACULATE ekstresi için kullandığınız This işlev ve kapsam deyim.

HESAPLAMA deyim kullanma

HESAPLAMA deyim küpteki toplanan verileri içeren her hücre doldurur.Örneğin, varsayılan MDX komut dosyası komut dosyası, başında tek bir HESAPLAMA deyim vardır.

HESAPLAMA sözdizimi hakkında daha fazla bilgi için deyim, bkz: Deyimi (MDX) HESAPLAR..

Not

Komut dosyası, bir HESAPLAMA deyim içeren kapsam bir deyim içeriyorsa, MDX tüm küp karşı kapsam deyim tarafından tanımlanan subcube bağlamı içinde HESAPLAMA deyim değerlendirilir.

Bu kullanarak işlev

The This işlev lets you retrieve the current subcube within an MDX script. Kullanabileceğiniz This işlev, hızlı bir şekilde MDX ifade geçerli subcube hücre değeri'ni ayarlamak için. Sık kullandığınız This işlev bir özel bir hesaplama geçiş sırasında belirli bir subcube içeriğini değiştirmek için kapsam deyim ile birlikte.

Not

Komut dosyası içeren bir kapsam deyim içeriyorsa bir This MDX işlev değerlendirilir This Tüm küp karşı kapsam deyim tarafından tanımlanan subcube bağlamında işlev.

Bu fonksiyon örneği

Aşağıdaki MDX komut dosyası komutu örnek This Tutar ölçü vade değerini artırmak için işlev ölçü grubu Adventure Works DW örnek küp için % 10 müşteri boyut Redmond üye alt öğeleri için daha yüksek:

/* This SCOPE statement defines the current subcube */
SCOPE([Customer].&[Redmond].MEMBERS, 
    [Measures].[Amount], *);
        /* This expression sets the value of the Amount measure */
        THIS = [Measures].[Amount] * 1.1;
END SCOPE;

Sözdizimi hakkında daha fazla bilgi için This işlev için bkz: Bu (MDX).

kapsam deyim kullanma

kapsam deyim içerir ve kapsam, diğer bir MDX ifadeler ve deyimleri bir MDX komut dosyası içinde belirtir Geçerli subcube tanımlar.Diğer bir MDX ifadeler ve ifadeler de dahil olmak üzere, MDX bu değerlendirir This işlev ve HESAPLAMA deyim, the subcube bağlamında.

Bir kapsam dinamik ancak yapısı içinde yinelemeli deyim.Ifadeler bir kapsam deyim içinde bulunan bir kez gerçekleştirilir, ancak subcube kendisini dinamik olarak belirlenebilir.Örneğin, SampleCube adlı bir küp var.Aşağıdaki KAPSAM uyguladığınız SampleCube kübe karşı deyim bir subcube tanımlamak için ölçümleri boyut içindeki ALLMEMBERS olarak bağlam tanımlar:

SCOPE([Measures].ALLMEMBERS);

THIS = [Measures].ALLMEMBERS.COUNT;

END SCOPE;

S deyim ve ifadeler içinde bu kapsam deyim bir kez gerçekleştirilir.

Artık, iş kullanıcı ExistingMeasure, karşı SampleCube Küp adında bir ölçü birimi içeren aşağıdaki MDX sorgusu çalışır:

WITH MEMBER [Measures].[NewMeasure] AS '1'

SELECT

[Measures].ALLMEMBERS ON COLUMNS,

[Customer].DEFAULTMEMBER ON ROWS

FROM

[SampleCube]

Sorgudan dönen hücre kümesi kümesi kümesi, aşağıdaki tabloda gösterilen çıkış benzer.

[ExistingMeasure]

[NewMeasure]

[Müşteri]. [all]

2

2

KAPSAMDA ExistingMeasure değeri,'ne dahil bildirimi döndürülen hücre kümesi kümesi kümesinin en aranıyor deyim MDX komut dosyası içinde dinamik olarak NewMeasure tanımlanan ölçü sonra güncelleştirilir.

kapsam bir deyim, başka bir kapsam deyim içinde iç içe kullanılabilir.kapsam deyim yinelemeli olarak ancak kapsam ifadeleri iç içe yerleştirmek için birincil amacı daha özel bir düzeltme için bir subcube alt bölümlere sağlamaktır.

kapsam deyim örneği

MDX komut dosyasını aşağıdaki örnekte bir tutar değerini ölçen, vade kümeleri kapsam deyim kullanır ölçü grubu Adventure Works DW örnek küp için % 10 müşteri boyut Redmond üye alt öğeleri için daha yüksek.Ancak, başka bir kapsam deyim subcube, 2002 takvim yılı tutar ölçü için alt öğeleri içerecek şekilde değiştirir.Son olarak, tutar ölçü birimi için tutar ölçü için toplanan değerler diğer Takvim yılları değiştirmeden bırakarak yalnızca o subcube, sonra birikir.

/* Calculate the entire cube first. */
CALCULATE;
/* This SCOPE statement defines the current subcube */
SCOPE([Customer].&[Redmond].MEMBERS, 
    [Measures].[Amount], *);
        /* This expression sets the value of the Amount measure */
        THIS = [Measures].[Amount] * 1.1;
END SCOPE;

kapsam deyiminin sözdizimi hakkında daha fazla bilgi için bkz: KAPSAM deyim (mdx).