Upload
api-26942036
View
2.148
Download
14
Embed Size (px)
Citation preview
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
mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material
MDX Introduction
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.
mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material
MDX Introduction
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
mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material
mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material
mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material
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)
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
mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material
mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material
MDX Introduction
mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material
mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material
mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material
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
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
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
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])
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
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
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"
mailto : [email protected] for all Hyperion video tutorial/Training/Certification/Materialmailto : [email protected] for all Hyperion video tutorial/Training/Certification/Material
QuestionsQuestions