设置 - 带有OLAP多维数据集的SSAS 2012(由供应商构建)和MS Report Builder v3。无法访问BIDS。
我正在构建一份报告,需要根据单个多维数据集中的数据计算处置率。从历史上看,这可以从两个单独的数据表中计算出来,按月记录的新项目按月计算,按月处理的项目按月计算。然后可以使用查找或类似方法将其转换为处置率。
空白处置日期很好(处理物品可能需要数月)。
我想将此保留在一个查询中,以便我可以引入额外的维度来分析数据并轻松地以多种方式表示。我的怀疑是我需要一个计算成员,但我不知道从哪里开始这些。任何帮助都将受到极大的欢迎 - 我正在尝试一些事情,如果我自己解决,我会更新。
简单的公式将是
=(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]
答案 0 :(得分:0)
如果两个层次结构具有完全相同的结构,您可以使用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]
您可能希望调整报告中的列标题。我把它排除在外,并使用的成员名称比他们应该向用户展示的内容更多。