我是MDX的新手,我试图在我的多维数据集上使用YTD功能,但我遇到了问题。
如果我在代码中指定日期,它可以正常工作:
WITH MEMBER [Time].[Year - Quarter - Month - Date].[YTD_SALES] AS
Aggregate(
YTD([Time].[Year - Quarter - Month - Date].[August 2014])
)
SELECT
[Time].[Year - Quarter - Month - Date].[YTD_SALES] ON COLUMNS,
[Item].[Item].Children ON ROWS
FROM
[TBA_SALES]
WHERE
[Measures].[Sales LCY]
但如果我用CurrentMember替换[2014年3月],结果将全部归零。
感谢任何帮助。
答案 0 :(得分:1)
您是否将时间维度设置为时间类型?
您可以尝试的另一件事是看看您作为当前成员获得了什么。 试试这个添加:
MEMBER YTDStr AS MEMBERTOSTR([Time].[Year - Quarter - Month - Date].CurrentMember)
然后将其添加到查询中,就像测量一样:
...
SELECT
{ [Time].[Year - Quarter - Month - Date].[YTD_SALES], YTDStr } ON COLUMNS,
...
编辑:
您将获得[Time].[Year - Quarter - Month - Date].[All]
,它是层次结构中的顶级成员。因此,无法为所有成员返回YTD。
要解决此问题,您需要在行上添加时间维度成员:
WITH MEMBER [Time].[Year - Quarter - Month - Date].[YTD_SALES] AS
Aggregate(
YTD([Time].[Year - Quarter - Month - Date].[August 2014])
)
SELECT
[Time].[Year - Quarter - Month - Date].[YTD_SALES] ON COLUMNS,
{[Item].[Item].Children, [Time].[Year - Quarter - Month - Date].ALLMEMBERS} ON ROWS
FROM
[TBA_SALES]
WHERE
[Measures].[Sales LCY]
我不确定您在此查询中的内容是什么,所以很难指出正确的方向。