MDX Query: The Syntax for [Simple Cube] is incorrect - mdx

I'm pretty sure this is a syntax error, but I'm unfamiliar with MDX. Any help would be greatly appreciated. I keep getting the error "Parser: the syntax for [Simple Cube] in incorrect. The measure I'm using, [Cancel Disbursement Amount], returns three different values. I'm trying to select the value where the [Dim Disbursement Type] equals AGENT COMMISSION. Here's the query:
SELECT NON EMPTY { [Measures].[Cancel Disbursement Amount] }
ON COLUMNS, NON EMPTY { [Dim Disbursement Type].[Description].&[AGENT
COMMISSION]}
ON COLUMNS FROM ([Simple Cube])
CELL PROPERTIES VALUE, BACK_COLOR,
FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
Thank you!

I guess you should remove the () :
... ON COLUMNS FROM [Simple Cube] CELL ...

Related

How to insert a string literal as a new column in an mdx query

In the following MDX query, I want to set the value of [Measures].[Label] as the string literal "Net Value" instead of NULL (i.e. using a string literal to populate the values in the label column). I'm scratching my head about how to do this in MDX. Tons of background with SQL, but a relative newbie with SSAS.
`WITH
Member [Measures].[Label] AS NULL
Member [Measures].[Value] AS [Measures].[Net Amt]
SELECT NON EMPTY
(
{[Time].[Quarter].[Quarter]},
{[Time].[Month].[Month]},
{[Time].[Work Week].[Work Week]},
{[Customer].[Region Cd].[Region Cd]},
{[Product].[Cd Nm].[Cd Nm]}
) ON Rows,
NON EMPTY
(
{
[Measures].[Value],
[Measures].[Label]
}
) ON Columns
FROM [Reporting]
WHERE
(
{
[Time].[Year].[Year].&[2022]:[Time].[Year].[Year].&[2023]
},
{[Segment].[Segment Nm].[Segment Nm].&[SEG VALUE]}
)`
If I try a value in double quotes, the query just times out without finishing. Just using a null like this only takes 2 seconds to return.
Member [Measures].[Label] AS "Net Amt"
The problem with putting a constant is that the NON EMPTY now returns every combination of Time, Customer and Product.
Instead you want to return a constant but only on rows where the Net Amt measure is not empty.
Member [Measures].[Label] AS IIF(Not(IsEmpty([Measures].[Net Amt])),"Net Amt",Null)
Alternately you could use a constant but use the NonEmpty function instead against the Net Amt measure only:
Member [Measures].[Label] AS "Net Amt"
Member [Measures].[Value] AS [Measures].[Net Amt]
SELECT NonEmpty(
{
{[Time].[Quarter].[Quarter]}*
{[Time].[Month].[Month]}*
{[Time].[Work Week].[Work Week]}*
{[Customer].[Region Cd].[Region Cd]}*
{[Product].[Cd Nm].[Cd Nm]}
},
[Measures].[Net Amt]
) ON Rows,
{
[Measures].[Value],
[Measures].[Label]
}
ON Columns

MDX Function (Excel PowerPivot) to Exclude Non Numeric Values from DB

I am quite new to MDX and I am trying hard to write a query that allows me to retrieve only numeric values.
My query at present is:
SELECT NON EMPTY {ISNUMERIC([Measures].[Average Booking Window])}
ON COLUMNS, NON EMPTY {
([Stay Date].[Year].[Year].ALLMEMBERS *
[Stay Date].[Month of Year].[Month of Year].ALLMEMBERS )
} DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME
ON ROWS FROM (
SELECT ( [Booking Date].[Calendar].[Date].&[2018-01-01T00:00:00] :
[Booking Date].[Calendar].[Date].&[2018-08-31T00:00:00] )
ON COLUMNS FROM (
SELECT ( { [Hotel].[Market].&[Pisa City, Italy] } )
ON COLUMNS
FROM [MYCUBE]))
WHERE ( [Hotel].[Market].&[Pisa City, Italy])
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR,
FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE,
FONT_FLAGS
The error I get is:
Query (1, 18) The function expects a tuple set expression for the 1 argument. A string or numeric expression was used.
What I am expecting is to get data only when it's numeric and I want the MDX query to completely exclude the rows with non numeric data.
Thank you in advance

Get Current Date in MDX Query

I am trying to get current date records and I have a query where a particular date is given , how can I put currentdate in that position.
I am new to MDX, if anyone answer that will be really helpful.
Below is the MDX query :
SELECT NON EMPTY { [Measures].[SHC] } ON COLUMNS, NON EMPTY { ([C].[RHC].[rhc].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( { [DHC].[DHC].&[01/01/1992] } ) ON COLUMNS FROM [TABULAR_EAL]) WHERE ( [DHC].[DHC].&[01/01/1992] ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
I want to get records based on CurrentDate.
Something like this:
StrToMember('[DHC].[DHC].&[' + Format(Now(),'dd/MM/yyyy') + ']')
See my blogpost for more details.
I complete the answer :
With Member Measures.CurrentDate As
Format(
Now(),
'yyyyMMdd'
)
Member Measures.GetMemberCurrentDate as
'[Start Date].[Miladi Int Date].&['+ measures.CurrentDate + ']'
member Measures.GetCurrentDateBimehValue as
(StrToMember(Measures.GetMemberCurrentDate) ,[Measures].[BimehValue])
select Measures.GetCurrentDateBimehValue on columns
from [BimehCube]

SSAS - Passing MDX Report Parameter to MDX DataSet Query

In my MDX report based on cube, the input help for date must be a calendar, therefore Date/Time type of parameter is essential. The field in time dimension by which I filter data is Integer. Example value: 20130827.
My dataset query looks like this:
SELECT NON EMPTY { [Measures].[Hours In Track] } ON COLUMNS, NON EMPTY {
([Dim Date].[Date ID].[Date ID].ALLMEMBERS * [Dim Division].[Hierarchy].[Division ID].ALLMEMBERS ) }
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM
( SELECT ( STRTOSET(#DimDivisionHierarchy, CONSTRAINED) ) ON COLUMNS FROM
( SELECT ( STRTOMEMBER(#FromDimDateDateID, CONSTRAINED) : STRTOMEMBER(#ToDimDateDateID, CONSTRAINED) ) ON COLUMNS FROM [BicepsArveCube]))
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
I used a text field, which showed me, that date/time type parameter value looks as follows:
2013-08-05 00:00:00, while my DateID is Integer type, so I need to do conversion.
When in dataset parameters tab I specify the parameter value as expression:
="[Dim Date].[Date ID].&["
& Replace(Replace("2013-08-05 00:00:00", "-", ""), " 00:00:00", "")
& "]"
I get the data as expected, everything works fine. But when I changed the hardcoded date/time value to parameter value (type date/time ):
="[Dim Date].[Date ID].&["
& Replace(Replace(Parameters!FromDimDateDateID.Value, "-", ""), " 00:00:00", "")
& "]"
I get a constraint violation error. I don't know why, because as written above, the Parameters!FromDimDateDateID.Value looks exactly the same as the hardcoded value I used.
I used text field to check what expression I get after conversion in both cases (hardcoded date and the same date chosen from calendar and passed as parameter value) and it looks exactly the same:
[Dim Date].[Date ID].&[20130805]
Try
STRTOMEMBER(
"[Dim Date].[Date ID].&["
+ Replace(Replace(#FromDimDateDateID, "-", ""), " 00:00:00", "")
+ "]",
CONSTRAINED)
In MDX - which is interpreted by Analysis Services - you cannot access Reporting Services objects like Parameters. Instead, their value is sent to the Analysis Services server along with the MDX statement, which can reference them with the # notation.

MDX CREATE MEMBER SYNTAX ERROR?

I'm very new to MDX, so sorry if this is a stupid question.
I'm creating a new calculated member
I'm getting a syntax error on Line 2 "AS SELECT NON EMPTY"?
CREATE MEMBER CURRENTCUBE.[Measures].FCR
AS SELECT NON EMPTY { [Measures].[Total Incident Count] } ON COLUMNS
FROM ( SELECT ( { [DIM INCIDENT].[First Call Resolution].&[Yes] } ) ON COLUMNS
FROM [ITSM Incident DM])
WHERE ( [DIM INCIDENT].[First Call Resolution].&[Yes] ),
FORMAT_STRING = "Standard",
VISIBLE = 1 ;
Thanks in advance for any assistance.
You cannot put a Select statement in the expression of a calculated member.
You can fine more information on this MSDN page.