I have a MDX query which gives me the list of different types of values (measures) over the years:
SELECT {
[Calendar].[Year].[Year]
} ON ROWS,
{
Measures.ValueA,
Measures.ValueB,
Measures.ValueC
} ON COLUMNS
FROM [MyCube]
It produces the following result:
Year | ValueA | ValueB | ValueC
2005 | 5 | 10 | 7
2006 | 7 | 12 | 3
(...)
I would like to treat the measures as columns to get the following result:
Year | Value | Quantity
2005 | ValueA | 5
2005 | ValueB | 10
2005 | ValueC | 7
2006 | ValueA | 7
2006 | ValueB | 12
2006 | ValueC | 3
The set of values is constant, so I was trying the following approach:
WITH
SET [ValueIds] AS { [1], [2], [3] }
MEMBER [Quantity] AS
CASE
WHEN [ValueIds].CurrentMember.MEMBERVALUE = 1 THEN Measures.ValueA
WHEN [ValueIds].CurrentMember.MEMBERVALUE = 2 THEN Measures.ValueB
WHEN [ValueIds].CurrentMember.MEMBERVALUE = 3 THEN Measures.ValueC
END
SELECT {
[Calendar].[Year].[Year]
* [ValueIds]
} ON ROWS,
{
[Quantity]
} ON COLUMNS
FROM [MyCube]
However there was no luck as "CurrentMember" was unrecognized in such context...
I've used an extra dimension in the same way as Danylo and I'm guessing you're wanting to rename some measures but I could be wrong:
WITH
MEMBER Measures.[1] AS Measures.ValueA
MEMBER Measures.[2] AS Measures.ValueB
MEMBER Measures.[3] AS Measures.ValueC
SELECT
[ExtraDimension].[ExtraHierarchy].[ExtraLevel].[All] ON 0,
[Calendar].[Year].[Year]
* {
Measures.[1],
Measures.[2],
Measures.[3]
} ON 1
FROM [MyCube];