MDX具有一个不错的功能,通过它我可以指定成员范围:
SELECT ([Canada],[2006]:[2011]) on Rows,
[Measures].members on Columns
FROM [Sales]
有没有一种方法可以计算偶数年:{[2006], [2008], [2010]}
?我正在寻找一种适用于大型集合的方法,因此无法手动列出年份。
答案 0 :(得分:2)
您可以使用filter function,declared function和MOD function来过滤函数(MOD返回除法的余数-如Java中的%):
WITH
FUNCTION isEven(Value _number) as Mod( Int(_number) , 2 ) = 0
SELECT
FILTER( [Date].[Date].[Year] as t, isEven( Year( t.current.key) ) ) on 0
FROM [Cube]
如果您经常使用此过滤器,则可以在脚本中创建一次FilterEven声明的函数(与isEven()相同)
答案 1 :(得分:1)
尝试一下。我使用冒险作品进行查询。 Mod Logic
WITH
MEMBER [Measures].[Data Type] AS
[Date].[Day of Year].CurrentMember.Properties ("Member_Value",TYPED)
MEMBER [Measures].[IsEven] as
[Measures].[Data Type]-Int([Measures].[Data Type]/2)*2
select {[Measures].[Internet Order Count] }
on columns,
filter (
[Date].[Day of Year].[Day of Year],
[Measures].[IsEven]=0)
on rows
from [Adventure Works]
答案 2 :(得分:0)
此外,您可以在日期维度中的一列中包含1,0,以指示年份是偶数还是奇数。然后,只需在MDX查询中使用该列,而无需执行上述所有操作