我的任務是將當前在我們的報告中使用的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