我有一堆我需要创建的计算成员,这些成员是在一个日期之后引用的。
不是重复获取测量将基于的日期成员的MDX,而是有一种方法可以在开始时创建日期成员,然后在整个过程中引用它,这样我就不必重复MDX多次?我在想类似下面的东西,但它返回一个NULL:
WITH MEMBER [Date].[Retail].[Closing Date] AS
IIF (
[Date].[Retail].CurrentMember.Level.Name = 'Date',
[Date].[Retail].CurrentMember.PrevMember,
[Date].[Retail].CurrentMember
)
MEMBER [Measures].[Closing New] AS
(
[Date].[Retail].[Closing Date],
[Measures].[On Hand Quantity]
)
SELECT
[Date].[Retail].[Date].Members ON ROWS,
{
[Measures].[On Hand Quantity],
[Measures].[Closing New]
} ON COLUMNS
FROM
Retail
WHERE
[Date].[Retail Year].&[2017]
如上所述,我想多次使用Closing Date
成员进行各种计算。
答案 0 :(得分:0)
要调查它返回null的原因,请尝试以下操作,看看它是否符合您的预期:
WITH
MEMBER [Measures].[nm] AS
[Date].[Retail].CurrentMember.Level.Name
SELECT
{
[Measures].[On Hand Quantity],
[Measures].[nm]
} ON 0,
[Date].[Retail].[Date].Members ON 1
FROM Retail
WHERE [Date].[Retail Year].&[2017];
(我还在SELECT子句中切换了声明顺序,因为声明列是标准的,因为它是轴0,首先是行)
答案 1 :(得分:0)
为什么是的,有!
我在这里遵循的模式是创建一个成员的集合,然后引用该集合的第一个项目。
with set currentDate as
[Date].[Retail].[Date].&[20160725]
然后在查询的其余部分中将其引用为
currentDate.item(0)