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ı hesaplamaları, hesaplama geçişleri bir küp içinde katmanlı bir yaklaşım olacak.

Not

Hesaplama geçişleri hesaplamaları nasıl etkileyebileceği hakkında daha fazla bilgi için bkz: Anlama Pass sipariş ve sipariş (mdx) çözmek.

Denetim için hesaplama geçişi, kapsam ve içeriği bir mdx komut dosyası içinde özellikle caculate deyim kullanın This , işlev ve kapsam deyim.

HESAPLAMA deyimi kullanarak

Her hücre HESAPLAMA deyim dolduran küp toplanan verilerle.Örneğin, varsayılan mdx komut dosyası komut dosyasının başında tek bir HESAPLAMA deyim vardır.

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

Not

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

Bu kullanma işlevi

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

Not

Komut dosyası içeren bir kapsam deyim içeriyorsa, bir This mdx işlev değerlendirir This işlev subcube bağlamında tanımlanan tarafından kapsam deyim, değil tüm küp.

Bu işlev örneği

Aşağıdaki mdx komut dosyası komutu örnek Finans ölçü birimi grubunda küpün Adventure Works dw örnek, % 10 İstanbul çocuklar için daha yüksek bir tutar ölçü değerini artırmak içinThis işlev üye müşteri boyuttaki:

/* 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, bkz: Bu (mdx).

scope deyimini kullanarak

kapsam deyim içeren ve kapsamını, diğer mdx deyimleri ve mdx komut içinde deyimleri belirtir Geçerli subcube tanımlar.mdx değerlendirir, bu, diğer mdx ifadeler ve deyimler de dahil olmak üzere, This işlev ve HESAPLAMA deyim bağlamında subcube.

Kapsam deyim dinamik, ama bir Doğa içinde yinelemeli.Bir kapsam deyim içinde yer alan ifadeler bir kez Çalıştır, ancak subcube dinamik olarak belirlenebilir.Örneğin, SampleCube adlı bir küp vardır.SampleCube küp karşı bir subcube tanımlamak için aşağıdaki scope deyim geçerli bağlam ölçümleri boyut içindeki allmembers olarak tanımlar:

SCOPE([Measures].ALLMEMBERS);

THIS = [Measures].ALLMEMBERS.COUNT;

END SCOPE;

deyims ve bu kapsamdaki ifadeler deyim bir kez çalıştırın.

Şimdi, iş kullanıcısı, ExistingMeasure, SampleCube küp karşı adlı bir ölçü içeren aşağıdaki mdx sorgusu çalıştırır:

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

SELECT

[Measures].ALLMEMBERS ON COLUMNS,

[Customer].DEFAULTMEMBER ON ROWS

FROM

[SampleCube]

Aşağıda, gösterilen çıktı sorgudan döndürülen hücre kümesi kümesi benzer tablo.

[ExistingMeasure]

[NewMeasure]

[Müşteri].[All]

2

2

Döndürülen hücre kümesi kümesi bakarak, tanımlanan ölçü NewMeasure sonra nasıl scope deyim mdx komut dosyası içinde bulunan ExistingMeasure değeri, dinamik olarak güncelleştirilir dikkat edin.

scope deyim içinde başka bir kapsam deyim iç içe olabilir.scope deyim yinelemeli olarak ancak, scope deyimleri iç içe yerleştirmek için birincil amacı bir subcube için özel işlemden daha alt bölümlere sağlamaktır.

scope ekstresi örneği

Bir KAPSAMI aşağıdaki mdx komut dosyası örneği kullanır deyim için Finans ölçü birimi grubunda küpün Adventure Works dw örnek, % 10 daha yüksek müşteri boyut içinde Redmond üyesinin çocuklar için tutar ölçü değerini ayarlar.Ancak, başka bir KAPSAMDA deyim subcube tutar ölçü çocuklar için 2002 Takvim yılı içerecek şekilde değiştirir.Son olarak, tutar ölçü birimi için toplanan değerler tutarı ölçü için diğer takvim yılları değişmeden bırakarak yalnızca o subcube sonra düzeylerdir.

/* 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ın sözdizimi hakkında daha fazla bilgi için deyim, bkz: scope deyimi (mdx).