【问题标题】:Calculating a % rate based on two date dimension in one cube基于一个多维数据集中的两个日期维度计算百分比率
【发布时间】:2014-07-31 14:01:00
【问题描述】:

设置 - 带有 OLAP 多维数据集(由供应商构建)和 MS Report Builder v3 的 SSAS 2012。无法访问投标。

我正在构建一个报告,该报告需要根据单个多维数据集的数据计算处置率。从历史上看,这将根据两个单独的数据表计算,按记录日期按月计算新项目,按处置月份按月计算处置项目。然后可以使用查找或类似方法将其转换为处置率。

空白处置日期很好(处置物品可能需要几个月的时间)。

我想将其保留在一个查询中,以便我可以引入额外的维度来分析数据并轻松地以多种方式表示它。我怀疑我需要一个经过计算的成员,但我不确定从哪里开始。任何帮助都会得到很大的帮助 - 我正在尝试一些事情,如果我自己解决了,我会更新这个。

简单的公式是

=(sumif(Items, DateReported="July 2014"))/(sumif(Items, Disposal Date="July 2014"))`

所以下面的数据...

Month Recorded  Month Disposed  No of Items
May-14          May-14          25
May-14          Jun-14          3
May-14          Jul-14          45
Jun-14                          232
Jun-14          Jun-14          40
Jun-14          Jul-14          46

应该产生...

Month         No Recorded  No Disposed  Disposal Rate
01/05/2014    73           25           34%
01/06/2014    48           43           90%
01/07/2014    45           91           202%

我当前的 MDX 语句:

SELECT
NON EMPTY { [Measures].[No of Items] } ON COLUMNS,
NON EMPTY 
     { 
       ([Date Reported].[Calendar Months].[Month].ALLMEMBERS 
        * 
        [Disposal Date].[Calendar Months].[Month].ALLMEMBERS ) 
     } ON ROWS 
FROM [Items] 

【问题讨论】:

  • 当 7 月没有记录该日期的记录时,您如何才能将计数计数为 45?不应该是0、91吗?您的示例数据中的数字与预期的输出不匹配。
  • 对不起,我截断了数据,那里应该与 7 月的数据有一条线 - 但我希望你能了解流程的要点

标签: sql-server reporting-services ssas mdx


【解决方案1】:

您可以使用LinkMember 将对一个层次结构(如[Date Reported].[Calendar Months])的引用移动到另一个层次结构(如[Disposal Date].[Calendar Months]),前提是两个层次结构具有完全相同的结构。因此,只有在查询中使用[Date Reported],计算才能使用[Disposal Date]。查询将如下所示:

WITH MEMBER Measures.[Disposed in Date Reported] AS
            (Measures.[No of Items],
             LinkMember([Date Reported].[Calendar Months].CurrentMember, [Disposal Date].[Calendar Months]),
             [Date Reported].[Calendar Months].[All]
            )
     MEMBER Measures.[Disposal Rate] AS
            IIf([Measures].[No of Items] <> 0,
                Measures.[Disposed in Date Reported] / [Measures].[No of Items],
                NULL
               ), FORMAT_STRING = '0%'
SELECT { [Measures].[No of Items], Measures.[Disposed in Date Reported], Measures.[Disposal Rate] }
       ON COLUMNS,
       [Date Reported].[Calendar Months].[Month].ALLMEMBERS
       ON ROWS
FROM [Items]

您可能希望调整报告中的列标题。我忽略了这一点,并使用了更多描述他们所做的事情的成员名称,而不是应该向用户显示的内容。

【讨论】:

  • 谢谢 - 我会在下周的工作中看看这个,看看我是否能做到我所追求的。
  • 谢谢 - 虽然我需要消化如何添加额外的维度,但我需要轻松地将其分割,并确保我完全了解如何在我需要的地方复制它需要大量类似性质的 % 测量值。
  • 我现在也使用它来生成计算成员,以便在拖放查询构建过程中更容易使用。这意味着我可以在将其作为新的完整度量生成之前在环境模板报告中对其进行测试。
猜你喜欢
  • 1970-01-01
  • 2016-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多