Wir können nun auch Subcubes erstellen. Das erinnert natürlich gleich an Subselects aus T-SQL.
Leider ist ein Subcube nicht so eindeutig wie das Equivalent aus T-SQL.
Die Syntax ist einfach:

Select

[Internet Sales Amount] on 0,[Category].members on 1

from

(

Select

{[Category].[Bikes],[Category].[Clothing]} on 0

from

[adventure works])

 
Internet Sales Amount
All Products $28,657,917.26
Bikes $28,318,144.65
Clothing $339,772.61

Der Subcube gibt auch das All Member zurück, obwohl nur Bikes und Clothing mit angegeben wurde.

 
Ein SubCube enthält alle Ascendants und Descendants. Hier das MDX auf die gesamte Product Dimension
erweitert; im ersten MDX wurde nach Member des Level Category eingeschränkt.
 

Select [Internet Sales Amount] on 0,[Product].[Product Categories].Members on 1

from

(

Select

{[Category].[Bikes],[Category].[Clothing]} on 0

from

[adventure works])

Internet Sales Amount
All Products $28,657,917.26
Bikes $28,318,144.65
Mountain Bikes $9,952,759.56
Mountain-100 Silver, 38 $197,199.42
 
Ein Subcube wird immer über die Achsen defiiniert. Ein Slicer wird nur im Kontext des Subcubes ausgeführt,
um z.Bsp. Set-Funktionen (TopCount) zu steuern.
Man kann einen Subcube aber mit beliebig vielen Achsen erstellen.
Select [Internet Sales Amount] on 0,[Category].members on 1

from

(Select

{[Category].[Bikes],[Category].[Clothing]}

on 0

,[Internet Sales Amount]

on 1

,[Date].[Calendar Year].&[2004]

on 2

,[Customer Geography].[Country].&[Germany]

on 3

from

[adventure works])

 
Das obenstehende MDX ist dann auch die Empfehlung für die Verwendung von SubCubes.
 
 
 
 
 
 
 
Advertisements