Az MDX Scope utasítás viselkedéséről


A SCOPE MDX utasítás NEM írja felül a kocka tartalmát!

Több mint 12 éve nem írtam egy sor ORACLE Express kódot, de az akkor tanultak olyan mélyen rögzültek, hogy alig tudok elvonatkoztatni tőlük. (Az Express volt az ORACLE OLAP adatbáziskezelője) Express-ben a LIMIT parancs (ami az MDX SCOPE utasítás ORACLE-ös megfelelője) után kiadott értékadás (pl.: Mennyiség = 4) hatására felülírtuk a kocka tartalmát. Ezzel szemben az Analysis Services csak képleteket generál, és kvázi a képlet eredményét jeleníti meg kliens oldalon. Ezzel nincs is probléma, csakhogy ebből következően nincs jelentősége az értékadás sorrendjének. Tehát:

SCOPE A;

THIS = B;

END SCOPE;

SCOPE B;

THIS = 0;

END SCOPE;

Utasítás sorozat eredményeképpen A-ra is és B-re is nullát fogunk visszakapni. Ha ezt meg akarjuk változtatni akkor a FREEZE () utasítással rögzíteni kell az először kiszámított értéket. Mutatom:

SCOPE A;

THIS = B;

FREEZE(THIS);

END SCOPE;

SCOPE B;

THIS = 0;

END SCOPE;

és ebben az esetben A B eredeti értékével lesz egyenlő, B pedig nulla lesz

Elválasztó

Már készül a következő cikk. Iratkozzon fel az értesítőre.

|

Kővári Attila
2010. szeptember 07.
Címkék:

Szóljon hozzá!

Szabály: Legyen kedves, segítõkész és vállalja a nevét.
A mező tartalma nem nyilvános.
  • A web és email címek automatikusan linkekké alakulnak.
  • Engedélyezett HTML elemek: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • A sorokat és bekezdéseket automatikusan felismeri a rendszer.
ANTI SPAM
A robot regisztrációk elkerülésére.
Image CAPTCHA
Figyeljen a kis és nagybetűk használatára