2012-04-30 52 views
0

我有几个角色扮演维度是FK的日期维度。我如何最好地计算从日期维度中的日期与角色扮演维度中的日期相匹配的交集?计算两个日期匹配的交叉点

在SQL它会是这样的:

Select DimDate, 
      COUNT(1) 
    From DimDateTable  D 
    join RolePlayingTable R on D.Date = R.Date 
    Group by DimDate 

我想这会工作:

With 
    Member [Measures].[First Date In]  as 
     (
     [Measures].[Account Count], 
     [Sprocket Date].[Date].CurrentMember 
     ) 
    Member [Measures].[First Date Out]  as 
     (
     [Measures].[Account Count], 
     [Widget Date].[Date].CurrentMember 
     ) 


    Select 
      { 
      [Measures].[First Date In], 
      [Measures].[First Date Out] 
      } on 0, 

      Non Empty 
      [Dim Calendar].[Date].[Date] on 1 

    From [Cube-Bert] 

但它只能算作交叉点,而不是在Sproket.Date = Calendar.Date

我也尝试过这一点,但它是不正确或者:

with 
    Member [Measures].[Count] as 
     Sum(
      Exists(
       {[Sproket Date].[Date].[Date]}, 
       {[Dim Calendar].[Date].[Date]} 
       ) 
      ,[Measures].[Account Count] 
      ) 

    select [Measures].[Count] on 0, 
      Non Empty 
      [Dim Calendar].[Date].members on 1 
    from [Cube-Bert] 
+1

我最终使用的答案是在我的DSV中添加基于日期匹配的0和1标志列中的计算字段。我试图使用LinkMember函数,但不成功。我觉得我受骗了,但是在我受到时间限制的情况下,我别无选择。 –

回答

0

我把日期匹配逻辑放入DSV中,并在事实表中产生一个标志列,1 = true,0 = false。