我的任务是将当前在我们的报告中使用的T-SQL
代码替换为MDX
的等效代码。我有T-SQL
经验,但不MDX
减去一组中的每个成员的计算值-MDX
我目前停留在以下问题:
- 我们店的名单和他们的损失销售的百分比。
- 将每个商店的销售损失百分比与基准数据进行比较以作进一步分析。
- 我需要将最高四分位数的最低失销率百分比作为基准数字,例如,如果我们在最高四分位数中有三家商店,百分比值为55,50,45,那么我需要使用45作为基线图。
- 的基准数字是动态的,会根据所有门店
我的问题是性能改变 - 如何减去商店的名单和他们的损失销售的百分比基线数字?我试图用下面的代码来做到这一点:
WITH Member [Measures].[TopQPer] AS
BOTTOMCOUNT(
TOPPERCENT(
[Network].[Centre Id].Members,
25,
[Measures].[Lost Sales Conversion Rate SSO]
),
1,
[Measures].[Lost Sales Conversion Rate SSO]
)
Member [Measures].[Difference] AS
(
(
[Network].[Centre Id].Members,
[Measures].[Lost Sales Conversion Rate SSO]
)
- [Measures].[TopQPer]
), FORMAT_STRING = 'Percent'
SELECT
[Measures].[Difference] ON Columns,
[Network].[Centre Id].MEMBERS ON ROWS
@frankPI你只用一个参数在第一个自定义度量中使用'TAIL' - 这个函数只用一个参数做什么? – whytheq 2014-10-11 13:39:57
infact是'TopPercent'提供排序的数据为什么使用'TAIL' - 不是'.Item(0).Item(0)'足够吗? – whytheq 2014-10-11 13:41:33
@whytheq正如Tail的文档(http://msdn.microsoft.com/en-us/library/ms146056.aspx)所述,带有一个参数的Tail等价于'Tail(,1)'。由于Item(0)返回该集合的第一个元组,而我们需要最后一个元组,所以我们不能忽略它。然而,我们可以使用'TopPercent(...)。Item(TopPercent(...)。Count - 1).Item(0)'。但是,我们会重复两次TopPercent表达式(或者为它引入一个命名集合)。不过,我不确定这是否会在清晰度或表现上有所提升。 – FrankPl 2014-10-13 12:22:46