我们正在为分析Sales for Stock的业务构建一个多维数据集。
我需要一个单独的措施来显示交割库存数量。
该业务在包含零售周的零售期间运行。本周总是在星期天结束,所以我的收盘库存数量必须来自星期日。
因此,如果我们查看今天(2016年7月12日星期二)的销售情况,那么该列应显示刚刚过去的星期日的价值,即2016年7月10日星期日。
这需要是动态的,具体取决于用户查看数据的级别。
,如果用户没有按日期打破数据透视表,但只是零售周,那么它应该显示上周最后一天的值。 如果用户将数据透视表分解为期间级别,则应使用相同的规则 - 它应显示上一个最后一天的值
我们有一个Date
维度,其中包含以下相关层次结构:
我知道我可以使用ClosingPeriod
函数,但我遇到了语法问题。
我有以下但是我得到了NULL。这是我第一个真正的MDX计算,对此非常新!
WITH MEMBER [Measures].[Closing On Hand Qty] AS
(
ClosingPeriod(
[Date].[Retail].[Retail Week],
[Date].[Retail].CurrentMember
),
[Measures].[On Hand Qty]
)
SELECT
[Date].[Retail].[Date].Members ON ROWS,
{
[Measures].[On Hand Qty],
[Measures].[Closing On Hand Qty]
} ON COLUMNS
FROM
Retail
WHERE
[Date].[Retail Year].&[2017]
答案 0 :(得分:0)
(注意:它不会抛出异常,但mdx标准是在Select子句中的行之前说明列)
ClosingPeriod
我没有玩过,但以下内容可能有所帮助:
WITH
MEMBER [Measures].[Closing On Hand Qty] AS
(
TAIL(
DESCENDANTS(
EXISTING [Date].[Retail].[Retail Week],
[Date].[Retail].[Date]
)
).ITEM(0).ITEM(0)
,[Measures].[On Hand Qty]
)
SELECT
{
[Measures].[On Hand Qty],
[Measures].[Closing On Hand Qty]
} ON 0,
[Date].[Retail].[Date].MEMBERS ON 1
FROM Retail
WHERE [Date].[Retail Year].&[2017];
查看ClosingPeriod的文档我认为以下内容可能有效:
WITH MEMBER [Measures].[Closing On Hand Qty] AS
(
ClosingPeriod(
[Date].[Retail].[Date],
EXISTING [Date].[Retail].[Retail Week]
),
[Measures].[On Hand Qty]
)
SELECT
{
[Measures].[On Hand Qty],
[Measures].[Closing On Hand Qty]
} ON COLUMNS,
[Date].[Retail].[Date].Members ON ROWS
FROM Retail
WHERE [Date].[Retail Year].&[2017];