1

我有[Measures].[Days in the period]它计算我的Time层次结构的天数。

我想创建将返回到今天为止的天数的计算成员。例如,如果今天是 11 月 14 日,则它必须显示 11 月的 14 天(而不是 30 天)。以及接下来几个月的空值(例如 12 月)。SQL 中没有像 GetDate() 这样的东西,所以我对实现它的简单方法有点困惑。我的初始代码没有太多:

member [Measures].[Days in the period passed] as [Measures].[Days in the period] 
4

1 回答 1

1

自己解决了。下面的代码完成了这项工作:

WITH
MEMBER [Measures].[Days in the period passed] AS 
FILTER 
(
Descendants([Time].[Calendar], [Time].[Calendar].[Day]),
[Time].[Day].Properties("Day key") <= FORMAT(NOW(), "yyyyMMdd")
).COUNT

编辑:更优雅和正确的方式是范围:

SCOPE
( 
[Measures].[Days in the period passed], [Time].[Day].[Day].Members
);   

THIS =  IIF([Time].[Day].CurrentMember.Properties( "Key0" ) <= FORMAT(NOW(), "yyyyMMdd"),
                        [Measures].[Days in the period],
                        NULL); 
END SCOPE; 

检查选择:

SELECT 
([Time].[Calendar].[Mouth]) ON COLUMNS,
(([Measures].[Days in the period passed])) ON ROWS
FROM [TestCube]
于 2013-11-03T19:19:19.590 回答