Essbase MDX

23
: [email protected] for all Hyperion video tutorial/Training/Certification/M Understanding MDX with BSO and ASO

Transcript of Essbase MDX

Page 1: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

Understanding MDX with

BSO and ASO

Page 2: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

MDX Introduction

Page 3: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

MDX Introduction

Multidimensional Expressions (MDX) lets you query multidimensional objects, such as cubes, and return multidimensional cell sets that contain the cube's data.

Multidimensional Expressions (MDX) lets you query multidimensional objects, such as cubes, and return multidimensional cell sets that contain the cube's data.

In MDX, the SELECT statement specifies a result set that contains a subset of multidimensional data that has been returned from a cube. To specify a result set, an MDX query must contain the following information:

The number of axes or sets of hierarchies. You can specify up to 64(0-63) axes in an MDX query.The members from each dimension to include on each axis of the MDX query.The name of the cube that sets the context of the MDX query.The members from a slicer axis on which data is sliced for members from the query axes. For more information about slicer and query axes.

In MDX, the SELECT statement specifies a result set that contains a subset of multidimensional data that has been returned from a cube. To specify a result set, an MDX query must contain the following information:

The number of axes or sets of hierarchies. You can specify up to 64(0-63) axes in an MDX query.The members from each dimension to include on each axis of the MDX query.The name of the cube that sets the context of the MDX query.The members from a slicer axis on which data is sliced for members from the query axes. For more information about slicer and query axes.

Page 4: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

MDX Introduction

Page 5: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

Simple Select SELECT{Jan}ON COLUMNSFROM Sample.Basic

Simple Select SELECT{Jan}ON COLUMNSFROM Sample.Basic

ExamplesExamples

Simple Select SELECT{([100-10], [Actual])}ON COLUMNSFROM Sample.Basic

Simple Select SELECT{([100-10], [Actual])}ON COLUMNSFROM Sample.Basic

Page 6: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

Page 7: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

Page 8: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

Page 9: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

Introduction to Sets and TuplesIntroduction to Sets and Tuples

A set is an ordered collection of one or more tuples that have the same dimensionalityA set is an ordered collection of one or more tuples that have the same dimensionality

A tuple is a way to refer to a member or a member combination from any number of dimensions.For example, in the Sample Basic database, Jan is a tuple, and so is (Jan, Sales), and so is ([Jan],[Sales],[Cola],[Utah],[Actual]).

A tuple is a way to refer to a member or a member combination from any number of dimensions.For example, in the Sample Basic database, Jan is a tuple, and so is (Jan, Sales), and so is ([Jan],[Sales],[Cola],[Utah],[Actual]).

In MDX Queries we specify AXIS to specify Data Access LayoutON COLUMNS can be used in place of AXIS(0)ON ROWS may replace AXIS(1)ON PAGES may replace AXIS(2)ON CHAPTERS may replace AXIS(3)ON SECTIONS may replace AXIS(4)

In MDX Queries we specify AXIS to specify Data Access LayoutON COLUMNS can be used in place of AXIS(0)ON ROWS may replace AXIS(1)ON PAGES may replace AXIS(2)ON CHAPTERS may replace AXIS(3)ON SECTIONS may replace AXIS(4)

Page 10: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

ExamplesExamplesSelect with Column and Row AxisSELECT{[100-10],[100-20]}ON COLUMNS,{[Qtr1],[Qtr2],[Qtr3],[Qtr4]}ON ROWSFROM Sample.Basic

Select with Column and Row AxisSELECT{[100-10],[100-20]}ON COLUMNS,{[Qtr1],[Qtr2],[Qtr3],[Qtr4]}ON ROWSFROM Sample.Basic

Specify Tuple And Sets SELECT{([100-10],[East]), ([100-20],[East])}ON COLUMNS,{([Qtr1],[Profit]), ([Qtr2],[Profit]),([Qtr3],[Profit]), ([Qtr4],[Profit])}ON ROWSFROM Sample.Basic

Specify Tuple And Sets SELECT{([100-10],[East]), ([100-20],[East])}ON COLUMNS,{([Qtr1],[Profit]), ([Qtr2],[Profit]),([Qtr3],[Profit]), ([Qtr4],[Profit])}ON ROWSFROM Sample.Basic

Page 11: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

Page 12: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

MDX Introduction

Page 13: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

Page 14: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

Page 15: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

Page 16: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

SELECT{([100-10], [Actual])}ON COLUMNSFROM Sample.Basic

SELECT{([100-10], [Actual])}ON COLUMNSFROM Sample.Basic

Page 17: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

Specify Member RangeSpecify Member Range

SELECT{([100-10],[East]), ([100-20],[East])}ON COLUMNS,{CrossJoin ({[Profit]},{[Qtr1],[Qtr2],[Qtr3],[Qtr4]})}ON ROWSFROM Sample.Basic

SELECT{([100-10],[East]), ([100-20],[East])}ON COLUMNS,{CrossJoin ({[Profit]},{[Qtr1],[Qtr2],[Qtr3],[Qtr4]})}ON ROWSFROM Sample.Basic

Page 18: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

SELECTMemberRange([Qtr1],[Qtr4])ON COLUMNSFROM Sample.Basic

SELECTMemberRange([Qtr1],[Qtr4])ON COLUMNSFROM Sample.Basic

Specify Member RangeSpecify Member Range

SELECT[Qtr1]:[Qtr4]ON COLUMNSFROM Sample.Basic

SELECT[Qtr1]:[Qtr4]ON COLUMNSFROM Sample.Basic

SELECT {[Year].Children} ON COLUMNS, Attribute ([Ounces_12]) ON ROWS FROM Sample.Basic

SELECT {[Year].Children} ON COLUMNS, Attribute ([Ounces_12]) ON ROWS FROM Sample.Basic

Attribute Dimension Attribute Dimension

Page 19: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

SELECTCrossJoin ({[100-10]}, {[East],[West],[South],[Central]})ON COLUMNS,CrossJoin ({[Sales],[COGS],[Margin %],[Profit %]}, {[Qtr1]})ON ROWSFROM Sample.Basic

SELECTCrossJoin ({[100-10]}, {[East],[West],[South],[Central]})ON COLUMNS,CrossJoin ({[Sales],[COGS],[Margin %],[Profit %]}, {[Qtr1]})ON ROWSFROM Sample.Basic

Performing Set OperationsPerforming Set Operations

SELECT {[Measures].[Sales], [Measures].[Profit]} ON COLUMNS, Except( [Market].Levels(0).Members, UDA (Market, "Major Market") ) ON ROWS WHERE {([Year].[Qtr1], [Scenario].[Actual])

SELECT {[Measures].[Sales], [Measures].[Profit]} ON COLUMNS, Except( [Market].Levels(0).Members, UDA (Market, "Major Market") ) ON ROWS WHERE {([Year].[Qtr1], [Scenario].[Actual])

Page 20: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

SELECTMembers(Market.levels(0))ON COLUMNSFROM Sample.Basic

SELECTMembers(Market.levels(0))ON COLUMNSFROM Sample.Basic

Filtering Using SliceFiltering Using Slice

SELECTCrossJoin ({[100-10]}, {[East],[West],[South],[Central]})ON COLUMNS,CrossJoin ({[Sales],[COGS],[Margin %],[Profit %]}, {[Qtr1]})ON ROWSFROM Sample.BasicWHERE (Budget)

SELECTCrossJoin ({[100-10]}, {[East],[West],[South],[Central]})ON COLUMNS,CrossJoin ({[Sales],[COGS],[Margin %],[Profit %]}, {[Qtr1]})ON ROWSFROM Sample.BasicWHERE (Budget)

Level/Generation GenerationLevel/Generation GenerationSELECT [Year].[Qtr1].Generation.Members ON COLUMNS, [Product].Generations(2).Members ON ROWS FROM Sample.Basic

SELECT [Year].[Qtr1].Generation.Members ON COLUMNS, [Product].Generations(2).Members ON ROWS FROM Sample.Basic

Page 21: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

SELECT { Profit } ON COLUMNS, Filter( [Product].levels(0).members, Profit < 0) ON ROWS FROM Sample.Basic

SELECT { Profit } ON COLUMNS, Filter( [Product].levels(0).members, Profit < 0) ON ROWS FROM Sample.Basic

Filtering DataFiltering Data

Aggregation QueriesAggregation Queries

WITH MEMBER [Measures].[Max Qtr2 Sales]AS 'Max ({[Year].[Qtr2]},[Measures].[Sales])'SELECT{[Measures].[Max Qtr2 Sales]}ON COLUMNS,{[Product].children}ON ROWSFROM Sample.Basic

WITH MEMBER [Measures].[Max Qtr2 Sales]AS 'Max ({[Year].[Qtr2]},[Measures].[Sales])'SELECT{[Measures].[Max Qtr2 Sales]}ON COLUMNS,{[Product].children}ON ROWSFROM Sample.Basic

WITHSET [Best5Prods] AS'Topcount ([Product].members,5,([Measures].[Sales], [Scenario].[Actual],[Year].[Dec]))'SELECT [Best5Prods] ON AXIS(0),{[Year].[Dec]} ON AXIS(1)FROM Sample.Basic

WITHSET [Best5Prods] AS'Topcount ([Product].members,5,([Measures].[Sales], [Scenario].[Actual],[Year].[Dec]))'SELECT [Best5Prods] ON AXIS(0),{[Year].[Dec]} ON AXIS(1)FROM Sample.Basic

Page 22: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

SELECTFilter([Market].Members,IsChild([Market].CurrentMember,[East]))ON COLUMNSFROM Sample.Basic

SELECTFilter([Market].Members,IsChild([Market].CurrentMember,[East]))ON COLUMNSFROM Sample.Basic

SELECT {Parent ([100-10])} ON COLUMNS FROM sample.basic

SELECT {Parent ([100-10])} ON COLUMNS FROM sample.basic

Member FunctionsMember Functions

WITH MEMBER [Scenario].[Revised Budget] AS 'IIF ( [Product].CurrentMember.Caffeinated, Budget * 1.1, Budget )' SELECT {[Scenario].[Budget], [Scenario].[Revised Budget]} ON COLUMNS, [Product].Levels(0).Members ON ROWS FROM Sample.Basic WHERE ([Measures].[Sales], [Year].[Qtr3])

WITH MEMBER [Scenario].[Revised Budget] AS 'IIF ( [Product].CurrentMember.Caffeinated, Budget * 1.1, Budget )' SELECT {[Scenario].[Budget], [Scenario].[Revised Budget]} ON COLUMNS, [Product].Levels(0).Members ON ROWS FROM Sample.Basic WHERE ([Measures].[Sales], [Year].[Qtr3])

Conditional Access "IFF"Conditional Access "IFF"

Page 23: Essbase MDX

mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material

QuestionsQuestions