ASO MDX query in outline??????
Trying to write a MDX query for the Account member
Hierarchy:
Account
A001
A002
A003
A008
Scenario
AG00
AG01
AG06
AG08
AG09
Organization
ETCE
E023
E024
E070
I need to caluculate for the Account AG08 the value should be derived from AG07 and for the same account AG08 for the Organization member "E070" the value should be same as AG09 ( i.e AG09 = AG08 )
I writen below query at the level "0" retrival query is good but when i use the Top level query "ETCE" parent level the value in "E070" is eliminating . Query writen below
NONEMPTYMEMBER [A001],[A007]
CASE
WHEN (IS([Organization].CurrentMember, [E070])) THEN
([A009])
WHEN (IS([Scenario].CurrentMember, [AG00])) THEN
(([A007] * -1)/100)
WHEN (IS([Scenario].CurrentMember, [AG01])) THEN
(([A007] * -1)/100)
WHEN (IS([Scenario].CurrentMember, [AG02])) THEN
(([A007] * -3)/100)
WHEN (IS([Scenario].CurrentMember, [AG03])) THEN
(([A007] * -10)/100)
WHEN (IS([Scenario].CurrentMember, [AG04])) THEN
(([A007] * -20)/100)
WHEN (IS([Scenario].CurrentMember, [AG05])) THEN
(([A007] * -80)/100)
WHEN (IS([Scenario].CurrentMember, [AG06])) THEN
([A007])
ELSE
Missing
END
At Bottom level "0" results are coming as expected but Its not working at the top level Organization ETCE level Please help ????
Thanks
Venu
Edited by: user13351102 on Oct 28, 2011 5:19 PM
Edited by: user13351102 on Oct 28, 2011 6:31 PM
Guru's any help on this ASO Member formula query ??
Similar Messages
-
Writing MDX query in outline??????
Hi All,
I have to write one MDX query for account member.
Hierarchy:
Accounts
---acm1
---acm2
---acm3
Time
---2011
------Jan, 2011
------Feb, 2011
---2010
------Jan, 2010
------Feb, 2010
Division
---East
------A
---------a
------B
---------b
---West
---North
---South
Now i need to calculate AVG for acm1 which is in accounts dimension based on Year and Division.
I have written
Sum(([Accounts].[TotalCreationToInvoiceDayNumber],[TimeMonth].CurrentMember.LastChild):([Accounts].[TotalCreationToInvoiceDayNumber],[TimeMonth].CurrentMember.LastChild.LastChild.Lag(11)))
Count(CrossJoin({[Accounts].[TotalCreationToInvoiceDayNumber]},{({[TimeMonth].CurrentMember.LastChild.LastChild:[TimeMonth].CurrentMember.LastChild.LastChild.Lag(11)})}
But it is not working, Can you please help me to complete this query????
Thanks,
PrathapThis will give you some idea
Re: Writing formula in Outline??????
Regards,
RSG -
Custom Calculation in ASO - Error in MDX query
Hi All,
We are trying to use a run a custom calculation on our ASO cube
We are getting the error as below
Syntax error in input MDX query on line 13 at token ' )'
When i checked my POV i did not find any issue. Even when I try to put only one crossjoin, it is still giving me the error saying "error at line 2')' "
I am unable to find the cause of this issue.
Can any one help me on this.
******content of Maxl Script********
execute calculation on database ASOFNPLN.ASOFNPLN with local script_file D:\++++++++Sateesh+++++++\ADWEA\Custom.csc"
POV
"Crossjoin({[FY09]},
Crossjoin({[Actual]},
Crossjoin ({[Jan],[Feb]},
Crossjoin({[Working]},
CrossJoin({[XA]},
CrossJoin({[0000000]},
CrossJoin({[000000000]},
CrossJoin({[00000]},
CrossJoin({[175110]},
CrossJoin({[CC_ADWEA_0000_AED]},
CrossJoin({[Unspecified Product]},
CrossJoin({[HSP_InputValue]},
CrossJoin({[Local]} )))))))))))))"
SourceRegion "{[Opening Balance],[Ending Balance],[Periodic Balance]}";
*************** Content of Custom.csc *********
case when
IsUda([Account].currentMember, "Expense") OR IsUda([Account].currentMember, "Revenue")
AND
Is([Period].CurrentMember, [Jan]) OR Is([Period].CurrentMember, [Feb]) OR Is([Period].CurrentMember, [Mar]) OR Is([Period].CurrentMember, [Apr]) OR Is([Period].CurrentMember, [May]) OR Is([Period].CurrentMember, [Jun]) OR Is([Period].CurrentMember, [Jul]) OR
Is([Period].CurrentMember, [Aug]) OR Is([Period].CurrentMember, [Sep]) OR Is([Period].CurrentMember, [Oct]) OR Is([Period].CurrentMember, [Nov]) OR Is([Period].CurrentMember, [Dec]) OR Is([Period].CurrentMember, [YearTotal])
THEN
([Ending Balance]):=([Opening Balance]+[Periodic Balance]);
([Opening Balance]):=([View].[Ending Balance], [Period].CurrentMember.lag(1));
([Ending Balance]):=([Opening Balance]+[Periodic Balance]);
ENDYou've got a mismatched " in the first line of the "execute calculation" statement.
However, I think the real problem is in the calc script. I don't believe you can do this in MDX:
CASE WHEN x THEN
a := y;
b := z;
END
You have to do this:
a := CASE WHEN x THEN y END;
b := CASE WHEN x THEN z END;
An alternative is to create a formula member for each of the measures you are trying to set (with the member formula containing the CASE logic) and have the calc script copy the formula member to the permanent member. -
MDX query for parent-child combination display
Hi guys..
I am really new to the Essbase technology.
Could you please help me out with this one:
is it possible to extract the data(for example the metadata of a outline)..eg:-
The outline structure is as follows :
A1
A11
A12
A2
A21
A22
I want a MDX query to display it as :
A1 A11
A1 A12
A2 A21
A2 A22
I have tried various ways but couldnt come up with a query for this.
Thanks in advance for all your help.Unfortunately MDX cannot do this. If you think about what you are asking for, you are essentially saying that you want to see members of the same dimension on different axis. Multi-dimensional queries can't do that (think about trying to do it with addin).
A further limiation is that MDX is not robust enough to allow you to work the results into a single axis using a concatenation function because while there is a string-to-member function, there is no member-to-string function and concat requires a string as input.
Other approaches would require MDX to support joins or subqueries, which it does not.
As others have mentioned, to do what you want to do, you need outline extractor or something like that.
*Fun fact - if you have OBIEE 11g, it can do reporting in Essbase with hierarchy members in hierarchy format or column format, which will give you the results you need. That alone is good reason to start using OBIEE. -
Essbase ASO Cube query performance from OBI EE
Hi all
I have serious problems of performance when I query an ASO cube from OBI EE. The problem born when I implement a filter in some dimension of model in the Business Model and Mapping layer. This filter is to level-0 of the dimension, the values are obtained from a session variable in OBI EE. The objetive of this is apply filters depending of users. Then, for session variable I've a table in relational dabase base with relation between user and "access", then my dimensions (not all) have as level-0 the "access" of users (as duplicated members).
The session variable in OBI EE is filled with row-wise option, so it has all values of "access" that correspond to user (:USER system variabe).
When I query only by one of this filtered dimensions the respond is very fast, When I query for one of this filtered dimensions and a metric the respond is fast (10 seconds). But when I query for two of this filtered dimensions and metric the respond take 25 minutes. I checked Essbase app log and found this:
+[Mon Nov 15 19:56:01 2010]Local/TestSec5/TestSec5/admin/Info(1013091)+
+Received Command [MdxReport] from user [admin]+
+[Mon Nov 15 20:28:28 2010]Local/TestSec5/TestSec5/admin/Info(1260039)+
MaxL DML Execution Elapsed Time : [1947.18] seconds
When I look the MDX query generated by OBI I see that the aggregation process is doing in the fly in the members filtered of the crossjoin of two dimensions:
With
set [CATALOGO_INSTITUCIONAL2] as '[CATALOGO_INSTITUCIONAL].Generations(2).members'
set [CATALOGO_PRESUPUESTARIO2] as '[CATALOGO_PRESUPUESTARIO].Generations(2).members'
*member [METRICAS_PRESUPUESTARIAS].[MS1] as 'AGGREGATE(filter(crossjoin (Descendants([CATALOGO_INSTITUCIONAL].currentmember,[CATALOGO_INSTITUCIONAL].Generations(7)),Descendants([CATALOGO_PRESUPUESTARIO].currentmember,[CATALOGO_PRESUPUESTARIO].Generations(7))),(([CATALOGO_INSTITUCIONAL].CurrentMember.MEMBER_ALIAS = "01.01" OR [CATALOGO_INSTITUCIONAL].CurrentMember.MEMBER_Name = "01.01")) AND (([CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_ALIAS = "G" OR [CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_Name = "G") OR ([CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_ALIAS = "I0101" OR [CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_Name = "I0101") OR ([CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_ALIAS = "S01" OR [CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_Name = "S01"))),METRICAS_PRESUPUESTARIAS.[Compromiso])', SOLVE_ORDER = 100*
select
{ [METRICAS_PRESUPUESTARIAS].[MS1]
} on columns,
NON EMPTY {crossjoin ({[CATALOGO_INSTITUCIONAL2]},{[CATALOGO_PRESUPUESTARIO2]})} properties ANCESTOR_NAMES, GEN_NUMBER on rows
from [TestSec5.TestSec5]
Can somebody tell me if is possible to change the way in that OBI built the query or if is possible to use aggregations previously materialized of essbase?hi Amol,
1. On what basis , did you estimate your cube to around 400GB to 600GB.
2. If ASO is an option, its huge advantage lies in space, its does not take more space , unlike BSO.
3. I have seen cubes ,who size was around 300-400GB in BSO,when made the same cube into ASO , its consumed space of 40GB-45GB.
HOpe this helps
Sandeep Reddy Enti
HCC
http://hyperionconsutlancy.com/ -
I have a simple MDX query is shown in below:
SELECT [Accounts].[pv] ON ROWS,
[Reporting].Members ON COLUMNS
FROM RoggeBSO.Db
(please note that Accounts, pv and Reporting words are in square brackets)
When I execute this query on the MDX Script Editor (in EAS), I get the following syntax error:
Statement Executed with warnings.
Syntax error in input MDX Query on line 1 at token 'ON'
Unexpected Essbase error 1260052
I tried this on both ASO & BSO cubes but didn't work. Could anyone help please?
Regards
Chandra
Edited by: user2695091 on 22-Apr-2009 03:27SELECT {[Accounts].[pv]} ON ROWS,
{[Reporting].Members} ON COLUMNS
FROM RoggeBSO.Db -
MDX Query Editable in BO 3.0?
Hello, everyone,
We are building BObj Universes in Version 3.0 against SAP BEx Queries. We have installed the "flattening error" service packs on the BW side, and have read and worked through the forum posts. Our issue is creating objects in the Universe, with the guidelines outlined by Didier in "OLAP universes best practices" document.
We can create simple objects in the Universe, but when we try to add the MDX functions to perform a rolling aggregate across time (the last 12 fiscal periods) or to find the corresponding value for the same period for one year ago, we get an error in the report.
So, we have a couple of questions:
1. Is there anyplace to see / edit the MDX query, like can be done in a relational universe?
2. Where exactly in the Universe does the syntax outlined in Didier's Best Practice document go? We have tried in the Universe object definition, but cannot see anywhere else to place the syntax.
Thanks for any assistance!
Regards,
JudyHi Judy,
Here is an example of YTD on previous member:
<EXPRESSION> SUM(YTD([0CALMONTH].PrevMember), [Measures].[4OHSNHMBZDWBV5J6NOYCWXZXV]) </EXPRESSION>
You can also use MDX expression such as PERIOSDTODATE or PARALLELPERIOD for returning the value of a n previous member at a given level.
Example, measure for the 3rd previous member at any level:
<EXPRESSION> ( [Measures].[4OHSNHMBZDWBV5J6NOYCWXZXV], PARALLELPERIOD( [0CALMONTH].currentmember.level, 3, [0CALMONTH].currentmember) ) </EXPRESSION>
Example, YTD with parallelperiod:
<EXPRESSION> SUM(YTD( PARALLELPERIOD( [0CALMONTH].currentmember.level, 1, [0CALMONTH].currentmember) ), [Measures].[4OHSNHMBZDWBV5J6NOYCWXZXV]) </EXPRESSION>
Please have a look on the Microsoft documentation for parallelperiod:[http://technet.microsoft.com/en-us/library/ms145500.aspx]
Best regards
Didier -
MDX Query: Equivalent of SQL's "IN" clause
Hi,
In SQL, we have an option of viewing data of multiple members by specifying IN as follows:
SELECT column1 from TABLE WHERE
column2 in ('value1','value2');
Is there any equivalent of that in MDX?
Let's say my outline is like this:
--Products (Standard Dimension)
|_____Computers (+)
|_____ Televisions (+)
|_____Others (+)
--Regions (Standard Dimension)
|_____North(+)
|_____ South (+)
|_____East(+)
|_____West(+)
--Measures (Accounts Dimension)
|_____Estimate Sales
|_____Actual Sales
I would like to answer this question:
What is the actual sales and estimate sales of each product in "North" and "East" regions?
If the region constraint is not there, the MDX query would be:
SELECT Products.Members on Rows
{[Estimate Sales], [Actual Sales]} on Columns
from appName.dbName
How do I modify this query to include only North and East regions, and still selecting product on rows?
Thanks in advance.
Regards,
Vivek GanesanJust add a where condition:
WHERE
({[Regions].[North], [Regions].[East})
for more info:
Member range specification:
http://docs.oracle.com/cd/E12825_01/epm.111/esb_techref/mdx_memberrange.htm
Slicer specification:
http://docs.oracle.com/cd/E12825_01/epm.111/esb_techref/mdx_slicer_spec.htm
Hope this helps -
OBIEE - ESSBASE ERROR - 1200467 - Error executing formula for [MDX query]
I have an issue on essbase with a query with 50 member filters.
The environment is OBIEE 11g over ESSBASE 11.1.2 with an ASO cube.
The user for essbase are with database access filters.
I have the following issue, OBIEE returns a query that filter 30 members and the query runs ok, but the same query with a 50 member filter returns the following error when i execute it on MAXL :
MAXL Error
ERROR - 1200467 - Error executing formula for [MDX query]: status code [1130203] in function [].
ERROR - 1241101 - Unexpected Essbase error 1200467.
i paste an example of the query that returns OBIEE
With
set [_Account2] as '{Distinct({[Account].[Allocated FTE - Budget]})}'
set [_Employee0] as '[Employee].members'
set [_Fund4] as 'Generate([Fund].Generations(2).members, Descendants([Fund].currentmember, [Fund].Generations(4), leaves))'
set [_Position4] as '{Distinct({[Position].[POS111165], [Position].[POS111166], [Position].[POS111167], [Position].[POS111540], [Position].[POS112331], [Position].[POS113201], [Position].[POS113247], [Position].[POS113248], [Position].[POS113540], [Position].[POS113618], [Position].[POS113954], [Position].[POS114109], [Position].[POS114194], [Position].[POS115224], [Position].[POS115912], [Position].[POS115913], [Position].[POS116727], [Position].[POS117229], [Position].[POS117491], [Position].[POS117587], [Position].[POS117610], [Position].[POS117979], [Position].[POS119456], [Position].[POS121262], [Position].[POS121458], [Position].[POS121698], [Position].[POS123368], [Position].[POS124027], [Position].[POS124028], [Position].[POS124110], [Position].[POS124396], [Position].[POS125623], [Position].[POS125624], [Position].[POS126476], [Position].[POS127960], [Position].[POS129352], [Position].[POS129468], [Position].[POS129494], [Position].[POS129535], [Position].[POS129608], [Position].[POS129679], [Position].[POS129730], [Position].[POS129905], [Position].[POS130010], [Position].[POS130144], [Position].[POS133456], [Position].[POS134943], [Position].[POS135231], [Position].[POS135404], [Position].[POS135734]})}'
set [_Program3] as 'Generate([Program].Generations(2).members, Descendants([Program].currentmember, [Program].Generations(3), leaves))'
select
{ [Budget Item]
} on columns,
NON EMPTY {crossjoin({[_Account2]},crossjoin({[_Employee0]},crossjoin({[_Fund4]},crossjoin({[_Position4]},{[_Program3]}))))} properties GEN_NUMBER, [Account].[MEMBER_UNIQUE_NAME], [Account].[Memnor], [Program].[MEMBER_UNIQUE_NAME], [Program].[Memnor], [Employee].[MEMBER_UNIQUE_NAME], [Employee].[Memnor], [Fund].[MEMBER_UNIQUE_NAME], [Fund].[Memnor], [Position].[MEMBER_UNIQUE_NAME], [Position].[Memnor] on rows
from [BCPSASO2.BCPS_ASO]
any suggestions ?
Thanks
Niko
Edited by: user8367101 on Mar 1, 2011 10:31 AMHere it is:
It is a Windows Server 2003 R2
Processor 8393 SE
31.9 GB of RAM
32-Bit
How does "memscaling" works?
I also think that are high but it is the way it was configured before I managed the application. For my DB
Index Cache setting: 205800
Index cache current value: 205800
Data file cache setting: 33768
Data file cache current: 0
Data Cache setting: 877273
Cata cache current: 71540
Block Size: 65408 -
Writing MDX query???
Hi All,
I have to write one MDX query for the below general formula.
For Year = 2011
If TotalPolicyCount > 0 Then
(TotalePolicyCount / TotalPolicyCount) * 100
Else
0
For Year = 2010
If TotalPolicyCount > 0 Then
Avg (TotalePolicyCount / TotalPolicyCount) * 100
Else
0
For Year = 2009
0
Can you please let me know how to write MDX.
Thanks,
PrathapThis will give you some idea
Re: Writing formula in Outline??????
Regards,
RSG -
Filters not getting passed in MDX query while using SAP BW with OBIEE
Hello,
I've been working on OBIEE with SAP BW as back-end. I've created some reports & those are working fine when there is less amount of data. But when I try to run a report with 3 dimensions & 1 fact it throws an error saying "No more storage space available for extending an internal table". When I checked MDX query, I found that the filters that I had applied to request & also selected from prompts are not getting passed in that query. So, I tried running a simple request using a simple filter in Answers. Although this request returns results but I can't see filter conditions in query. MDX query always show crossjoin but I can't see filter conditions anywhere.
Is it the normal OBIEE behaviour OR am I doing something wrong in there? Can you please help me out with this?
Thanks,
RockyHello Sainath,
We tried those things. But it is still giving same error.
State: HY00. Code: 10058. [NQODBC][SQL_STATE:HY000][nQSError: 10058] A general error has occurred. XML/A error returned from the server: Fault code: "XMLAnalysisError.0X80000005". Fault string: "The XML for Analysis provider encountered an error: MDX result contains too many cells (more than 1 million)". (HY000)
The problem here, I think, is the filter parameters are not getting passed in the MDX query. Any idea why would that happen? Is there any setting to do so?
Thanks in advance for help.
Regards,
Rocky -
Hi All
I am new to MDX language and need a MDX functions/query on the cube to get the required output, Given below is the scenario with the data.
I am maintaining the data in a table in dataMart with given structure. We have the data at day and weekly in a single table with granularity indicator and count is the measure group column. While loading the data in to mart table we are populaiting the week
Key from week table and Month key from month table and joining in the cube.
we need to calculate the inventory for a particular month. If a user selects a particular month the output would be count = 30 as a measure called Closed and count = 16 as a measure value called Open.
Need a MDX query to get output.
Granularity Count WeekKey MonthKey
Weekly 16
W1 M1
Weekly 17
W1 M1
Weekly 18
w1 M1
Weekly 19
W1 M1
Weekly 20
W1 M1
Weekly 21
W1 M1
Weekly 22
W1 M1
Weekly 23
w2 M1
Weekly 24
w2 M1
Weekly 25
w2 M1
Weekly 26
w2 M1
Weekly 27
w2 M1
Weekly 28
w2 M1
Weekly 29
w2 M1
Weekly 30
w2 M1
Weekly 16
w3 M1
Weekly 17
w3 M1
Weekly 18
w3 M1
Weekly 19
w3 M1
Weekly 20
w3 M1
Weekly 21
w3 M1
Weekly 22
w3 M1
Weekly 23
w4 M1
Weekly 24
w4 M1
Weekly 25
w4 M1
Weekly 26
w4 M1
Weekly 27
w4 M1
Weekly 28
w4 M1
Weekly 29
w4 M1
Weekly 30
w4 M1
Thanks in advanceHi Venkatesh,
According to your description, you need to count the members with conditions in a particular month, right?
In MDX, we can achieve the requirement by using Count and Filter function, I have tested it on AdventureWorks cube, the sample query below is for you reference.
with member [ConditionalCount]
as
count(filter([Date].[Calendar].[Month].&[2008]&[2].children,[Measures].[Internet Order Count]>50))
select {[Measures].[Internet Order Count],[ConditionalCount]} on 0,
[Date].[Calendar].[Date].members on 1
from
(select [Date].[Calendar].[Month].&[2008]&[2] on 0 from
[Adventure Works]
Reference
http://msdn.microsoft.com/en-us/library/ms144823.aspx
http://msdn.microsoft.com/en-us/library/ms146037.aspx
If this is not what you want, please elaborate your requirement, such as the detail structure of your cube, so that we can make further analysis.
Regards,
Charlie Liao
TechNet Community Support -
Hello everyone,
I created following calculated member in MDX query. I am using it in one of the report parameter in dataset (single select dropdown list as report parameter).
WITH MEMBER [Measures].[ParameterCaption] AS
CoalesceEmpty([Customer].[National Account Code].CURRENTMEMBER.MEMBER_CAPTION,'None')
I would like to display 'None' text at the top of the dropdown list values. So that when user selects 'None' then this parameter will not considered in MDX query else the selected National Account Code will be considered to filter report data. But,
the above return blank/empty value for [Customer].[National Account Code].& member though I specified 'None' as text in CoalesceEmpty function. Any advice would be appreciated.
Thanks, Ankit Shah
Inkey Solutions, India.
Microsoft Certified Business Management Solutions Professionals
http://www.inkeysolutions.com/MicrosoftDynamicsCRM.htmlHi Ankit,
It seems that you issue had been solved in your another thread.
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/5a5becac-226f-428a-95b0-aaaa22733818/ssrs-report-with-tabular-model-create-a-dropdown-report-parameter-with-none-option-as-the-top?forum=sqlanalysisservices#0e51bf8c-a66c-4df5-a244-0147728fdfdb
iif([Customer].[National Account Code].CURRENTMEMBER.MEMBER_CAPTION="","None",[Customer].[National
Account Code].CURRENTMEMBER.MEMBER_CAPTION)
I marked this reply as answer, it will benefit to other members who have the similar issue.
Regards,
Charlie Liao
TechNet Community Support -
SSRS report with cube – MDX query how to get an extra row with value '0'.
Hello everyone,
I'm unable to write the MDX query to get '0' value as first row in output. Following is my MDX query:
WITH MEMBER [Measures].[Dummy] AS '0'
SELECT NON EMPTY Union( {[Measures].[Amount] },{[Measures].[Dummy]}) ON COLUMNS,
NON EMPTY { ([Customer].[Customer Nbr].[Customer Nbr].ALLMEMBERS * [Fiscal].[Year].[Year].ALLMEMBERS ) }
having [Measures].[Amount] > 5000
ON ROWS FROM [cube]
With above query, the output returns the value '0' as a separate column.
I would like to get it in form of first row for [Measures].[Amount]. Like,
Amount
0
500
200
100
What needs to be changed to achieve the above result? I'm planning to use the above value in line chart to start the line from 0th value as described in following URL. (Note: The below URL is using SQL query and not MDX expressions.)
http://spinerain.blogspot.in/2013/09/ssrs-line-chart-create-stacked-line-and.html
Thanks, Ankit Shah
Inkey Solutions, India.
Microsoft Certified Business Management Solutions Professionals
http://www.inkeysolutions.com/MicrosoftDynamicsCRM.htmlThe round brackets in your expression are forcing an implicit crossjoin between the 3 lines. I would do the following which creates a set of the DummyYear plus the real year members and then crossjoin that with the customer set.
WITH MEMBER [Fiscal].[Year].DummyYear AS '0'
SELECT NON EMPTY {[Measures].[Amount]} ON COLUMNS,
NON EMPTY {[Fiscal].[Year].DummyYear,
[Fiscal].[Year].[Year].MEMBERS} *
[Customer].[Customer Nbr].[Customer Nbr].MEMBERS
having [Measures].[Amount] > 5000
ON ROWS FROM [cube]
http://darren.gosbell.com - please mark correct answers -
ASO MDX member formula and performance
Hi,
I am doing some testing about MDX formulas and performance. I found a performance issue but I can not understand why is taking so long time a report.
The situation is:
I create a report or a MDX query with:
6 dimensions in row and 1 dimension in column
rows:
Period - Filtered using a member
Year - Filtered using a member
Relationship Manager - Filtered using a member
Report Type - Filtered using a member
Local Relationship Manager - 4400 members level 0
Global Relationship Manager - 10400 members level 0
Column:
Account dimension, only a member
The member selected for Report Type (RM.Local) has a formula
My Report Type dimension has 10 members, there is one member where I store data called : RM.Input
My first test was
RM.Local his formula is [RM.Input] , the report is run in 1 second
RM.Local his formula is ([RM.Input],[MTD]) where MTD is a member level 0 store in my view dimension. The report run in 20 minutes. I was not expecting so bad performance when I only pointing at [RM.Input],[MTD]
Do you consider this time is reasonable when I am using this formula?
The mdx report is:
With
set [_Local Relationship Manager3] as 'Descendants([All Local Relationship Managers], 2)' = level 0 members
set [_Global Relationship Manager4] as '[Global Relationship Manager].Generations(4).members' = level 0 members
set [_Period0] as '{[Period].[Oct]}'
set [_Relationship Manager4] as '{[Relationship Manager].[Dummy1)]}'
set [_Report Type0] as '{[Report Type].[RM.Local]}'
set [_Year2] as '{[Year].[FY-2013]}'
select
{ [Account].[Expenses]
} on columns,
NON EMPTY {crossjoin({[_Local Relationship Manager3]},crossjoin({[_Global Relationship Manager4]},crossjoin({[_Period0]},crossjoin({[_Relationship Manager4]},crossjoin({[_Report Type0]},{[_Year2]})))))} properties MEMBER_NAME, GEN_NUMBER, [Global Relationship Manager].[MEMBER_UNIQUE_NAME], [Global Relationship Manager].[Memnor], [Local Relationship Manager].[MEMBER_UNIQUE_NAME], [Local Relationship Manager].[Memnor], [Relationship Manager].[MEMBER_UNIQUE_NAME], [Relationship Manager].[Memnor], [Period].[Default], [Report Type].[Default], [Year].[MEMBER_UNIQUE_NAME], [Year].[Memnor] on rows
from [DICISRM.DICISRM]Ok Try this one
But here you have to change the MDX formula every month.
Year
--FY2009
--FY2010
--FY2011
--FY2012
Period
--TotalYear
----Qtr1
-------Jan
-------Feb
-------Mar
Let say if you're CurrentYear is FY2011 and you're Current Month is March then you're MDX will be
case when contains([Year].CurrentMember,MemberRange([FY2009],[FY2010])) and contains([Period].CurrentMember,MemberRange([Jan],[Feb]))
Then
B
else
C
end
For the Next month you just have to make a change in the MemberRange I.e.,(Replace Feb with Mar)
*case when contains([Year].CurrentMember,MemberRange([FY2009],[FY2010])) and contains([Period].CurrentMember,MemberRange([Jan],[Mar]))*
Then
B
else
C
end
I tested it and Its working fine.
I think this will solve you're problem but there might be a more elegant solution out there.
Regards,
RSG
Maybe you are looking for
-
Error in Web Service when accesing in portal SRT: Authorization denied
Hello Experts, I have created web service in development and creates endpoint in SOAMANAGER than through portal i am able to access the webservice than i transported that web service to quality and again created endpoint in SOAMANAGER but when i acce
-
When will we have Lens Cast Calibration in Lightroom
Hi, I do postproduction all the time for a couple of other photographers. They send me the raws and I develop them. My favourite tool to do this is Lightroom, especially since the quality improvement in version 3. However, I often work on architectur
-
How do i uninstall fire fox so i then can reinstall on a macbook
am not familiar on how to uninstall programs on a mac
-
Scoket connect fails with: Can't assign requested address
Hi All, I am running Java on Mac OS X 10.4.8 (Intel). I run the following code: for (i=0; i<20000; i++) { java.net.Socket socket = new java.net.Socket(); socket.connect(new java.net.InetSocketAddress("localhost", 80)); socket.close();
-
Creating Standby server ---- Flash archive/Alternate Boot Environment.
Dear All, I want to patch upgrade the Centralized login server which holds more than 200 users. To avoid this production outage during the downtime of upgradation, we are planning to create all the logins and application in the alternate server manua