Ssas MDX:按子值限制父聚合

Ssas MDX:按子值限制父聚合,ssas,mdx,Ssas,Mdx,我的MDX充其量只是个雏形,我甚至不知道如何正确表达我的问题来寻找答案,这是一个现实的可能性。对不起,如果这是重复的 我有一个日期/时间层次结构[日期]: [Work Date].[Dates].[Year].[Quarter].[Month].[Day] 我想做的是返回前5年X月份的数据(假设为1月份): 但是,我无法根据具体月份限制“年”数据。我尝试过这段MDX代码,但根本没有结果: SELECT [Measures].[Sub Total] ON 0, [Work Date].[Date

我的MDX充其量只是个雏形,我甚至不知道如何正确表达我的问题来寻找答案,这是一个现实的可能性。对不起,如果这是重复的

我有一个日期/时间层次结构[日期]:

[Work Date].[Dates].[Year].[Quarter].[Month].[Day]
我想做的是返回前5年X月份的数据(假设为1月份):

但是,我无法根据具体月份限制“年”数据。我尝试过这段MDX代码,但根本没有结果:

SELECT [Measures].[Sub Total] ON 0,
[Work Date].[Dates].[Year] ON 1
FROM (
SELECT [Work Date].[Dates].[Month].&[01] ON 0
FROM [Data Warehouse])

如果我编辑子选择,我可以得到一个特定的年份、季度和月份。。。但我只想限制月份,而不是年份。我已经考虑过使用EXCEPT子句,但我遇到了同样的问题。这有什么意义吗?我感谢任何帮助,如果能促进我的学习/理解,我不反对阅读长篇文章。谢谢

在注释中解释后:要获得每个层次结构级别的相同子级,可以使用MDX函数
cosine
(msdn上的参考)。正如文件所说:

返回具有相同相对位置的子成员 父成员作为指定的子成员

因此,在您的情况下,日期维度必须是完整的,不能缺少月份或天数,这样您就可以编写这样的查询(我已经在AdventureWorks上进行了测试)

这些年来,我把总数和小计放在一起。我只考虑这三年,因为它们从1月到12月是完整的,我可以毫无问题地申请


希望这有帮助

在注释中解释后:要获得每个层次结构级别的相同子级,可以使用MDX函数
cosine
(msdn上的参考)。正如文件所说:

返回具有相同相对位置的子成员 父成员作为指定的子成员

因此,在您的情况下,日期维度必须是完整的,不能缺少月份或天数,这样您就可以编写这样的查询(我已经在AdventureWorks上进行了测试)

这些年来,我把总数和小计放在一起。我只考虑这三年,因为它们从1月到12月是完整的,我可以毫无问题地申请


希望这有帮助

我认为你的问题有点混乱,你想从所选的一个问题算起5年(60个月)吗?你能进一步解释吗?我试试看。我想比较一下今年1月和前一年1月的收入,以及前一年和前一年的收入。这样我就有了5年来1月份数据的“趋势”。这有帮助吗?我认为你的问题有点混乱,你想从所选的一年(60个月)算起5年(60个月)吗?你能进一步解释吗?我试试看。我想比较一下今年1月和前一年1月的收入,以及前一年和前一年的收入。这样我就有了5年来1月份数据的“趋势”。这有帮助吗?我将不得不对它进行一些调整,以便对我起作用,但我认为将我指向堂兄函数将起到作用!感谢您的时间和耐心。:)我将不得不对它进行一些调整,以适应我的工作,但我认为将我指向堂兄函数将达到目的!感谢您的时间和耐心。:)
SELECT [Measures].[Sub Total] ON 0,
[Work Date].[Dates].[Year] ON 1
FROM (
SELECT [Work Date].[Dates].[Month].&[01] ON 0
FROM [Data Warehouse])
with member [Measures].[Sub Total] 
as (Cousin([Date].[Calendar].[Month].&[2004]&[1], [Date].[Calendar].CurrentMember), [Measures].[Internet Sales Amount]) , Format_string = 'Currency'

Select {[Measures].[Internet Sales Amount],[Measures].[Sub Total]  } on 0
,{
  [Date].[Calendar].[Calendar Year].&[2002] 
 ,[Date].[Calendar].[Calendar Year].&[2003]
 ,[Date].[Calendar].[Calendar Year].&[2004]
 } on 1
from [Adventure Works]