SQL Server Analysis Services中的一对多关系

时间:2011-05-09 14:44:08

标签: sql-server data-warehouse business-intelligence ssas

我有这些表格:

  1. DimDate(PK:DateKey,其他属性)

  2. FactActivationCodes(PK:ActivationCode,IssuedDateKey(FK to DimDate)

  3. FactExpirations(PK:ActivationCode + ExpirationType,FK:ActivationCode to FactActivationCodes)

  4. 我设置了计算

    中行数的度量
    1. 发布计数(FactActivationCodes中的行数)

    2. 过期计数(FactExpirations中不同ActivationCodes的数量)

    3. 这个想法是FactActivationCodes有一个激活码,发布日期。激活码可以年复一年地过期(然后续订),因此它将在FactExpirations中有一行到期(每年一个)

      我在表格中放了一些测试行;我在FactActivationCodes(每个不同的IssuedDate)中放了3行,而在FactExpirations中只有2行。当我浏览多维数据集时,我正在查看列上的Issued计数和行上的Issued Date(维度),它看起来像这样:

      
                         Issued Date 
      January 2008         1 
      February 2008        1 
      March 2008           1 
      
      

      但是,当我添加过期计数时,我希望看到'过期列'只计算与'激活码'匹配的那个,因为两个事实表之间存在一对多的关系:

      
                          Issued Date   Expired Date 
      January 2008            1             1  
      February 2008           1             1 
      March 2008              1             0 
      
      

      但相反,我是这样的所有东西的交叉连接,总计已过期:

      
      
                          Issued Date   Expired Date 
      January 2008            1               2 
      February 2008           1               2 
      March 2008              1               2 
      April 2008                              2 
      May 2008                                2 
      June 2008                               2 
      
      

      然后,对于我的日期维度中的每个日期条目...我想我没有正确地建立关系...我怎样才能得到预期的结果?

1 个答案:

答案 0 :(得分:0)