Q: How can I get attribute key with MDX
A:
To do so, use Member_Key function:
WITH MEMBER Measures.ProductKey as [Product].[Product Categories].Currentmember.Member_Key SELECT {Measures.ProductKey} ON axis(0), [Product].[Product Categories].Members on axis(1) FROM [Adventure Works]
Added May 19, 2009 by Vidas Matelis.
You can also get the same results by using Properties("Key") function:
WITH MEMBER Measures.ProductKey as [Product].[Product Categories].Currentmember.Properties("Key") SELECT {Measures.ProductKey} ON axis(0), [Product].[Product Categories].Members on axis(1) FROM [Adventure Works]
For coposite keys Member_Key and Properties("Key") will return NULL values. You should use Properties("Key0"), Properties("Key1"), etc to get composit keys:
WITH MEMBER Measures.StateProvinceKey0 AS [Customer].[State-Province].CurrentMember.Properties("KEY0") MEMBER Measures.StateProvinceKey1 AS [Customer].[State-Province].CurrentMember.Properties("KEY1")
SELECT {Measures.StateProvinceKey0, Measures.StateProvinceKey1} ON axis(0), [Customer].[State-Province].Members on axis(1) FROM [Adventure Works]
Here are results for the last query:
State-Province |
StateProvinceKey0 |
StateProvinceKey1 |
All Customers |
0 |
#Error |
Alabama |
AL |
US |
Alberta |
AB |
CA |
Arizona |
AZ |
US |
Bayern |
BY |
DE |
Brandenburg |
BB |
DE |
British Columbia |
BC |
CA |
Brunswick |
NB |
CA |
California |
CA |
US |
Charente-Maritime |
17 |
FR |
Colorado |
CO |
US |
Note: There is performance penalty when you convert dimension key to a measure |