除了一个案例外,我的MDX计算工作正常。
它正在卷起一周,看起来像这样:
with
MEMBER [Measures].[WTD]
as AGGREGATE( [Date].[Date].CURRENTMEMBER.Parent.CHILDREN, [Measures].[Survey Count] )
SELECT
NON EMPTY
{
[Measures].[Survey Count],
[Measures].[WTD]
} ON COLUMNS,
NON EMPTY
{
( [Date].[Date].[Day].ALLMEMBERS )
} ON ROWS
FROM [myCube];
按周我的意思是周日到周六。这是需要计算的方式。
问题在于周日到周六周的月份有变化。因此,对于2017年3月的最后一个周日到周六周,例如,第二个最后一天是3月31日,最后一天是4月1日。在立方体中,这看起来像:第13周有3月26日 - 3月31日的值(6几天,然后第13周再次出现在4月份。这是4月份的第一个星期,第13周只有一天 - 4月1日。然后是4月的第14周,整整7天(4月2日 - 4月8日)。
多维数据集具有Date层次结构,其下面包含Year,Quarter,Month,Week和Day维度。
那么,如果将一周分为两个月,我该如何修改此MDX以包括整周(周日至周六之间的所有七天)?
答案 0 :(得分:0)
您所看到的行为的原因是您的日期维度的层次结构。例如。月份级别高于周级别,这意味着 .Parent 函数始终返回 .CurrentMember 日期当月的星期几。
您有不同的选择来解决这个问题:
1)
您只需使用MDX WTD()函数,您只需要正确配置 Date 维度,以便属性具有正确的 Type 。
2)
您可以创建另一个日期hierarhy,将年/周作为第1级,将日作为第2级,如下所示:
在这种情况下,您现有的代码将起作用,您只需要引用这个新的层次结构。
3)
您还可以将Weekday定义为Day属性的属性,然后您可以使用现有的 Date 层次结构创建WTD度量,如下所示:
WITH
MEMBER [Measures].[WTD]
AS
AGGREGATE(
TAIL(FILTER( NULL:[Date].[Day].CurrentMember, [Date].[Day].Properties( "Weekday" )="Sunday" ), 1).Item(0) : [Date].[Day].CurrentMember,
[Measures].[Survey Count]
)