我正在學習工作。我在每張牀上都有幾分鐘的桌子。我想計算病牀的利用率。我曾在2008年SSASSSAS Cube計算的成員總數錯誤
CREATE MEMBER CURRENTCUBE.[Measures].UtilisationPercent
AS avg(
crossjoin(
descendants([bedlabel].[hierarchy].currentmember, [Bedlabel].[Bedlabel])
,descendants([Date].[date].currentmember, [Date].[Day])
)
,[Measures].[Utilisation Mins]
)
/(24*60),
FORMAT_STRING = "Percent",
NON_EMPTY_BEHAVIOR = { [Utilisation Mins] },
VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = 'Bedstay' ;
,如果我按年/月或病房/牀片其實,這工作正常創建的計算成員在我的立方體。
但是多維數據集瀏覽器中顯示的總利用率是錯誤的。我如何控制利用總量的計算方式?我可以創建一個計算成員的方式,交叉連接將工作在比葉更高的級別?
January 2011 Utilisation %
- Bed1 98.86%
- Bed2 88.38%
- BED3 82.63%
- Bed4 94.67%
- Bed5 85.82%
- Bed6 93.53%
- Bed7 78.78%
- Bed8 85.43%
- Bed9 91.16%
- Bed10 90.93%
- Bed11 92.00%
- 總計894.35%< ---這是太錯。
- MEZ的評論
確定後添加,謝謝你的提示。我嘗試了下面的範圍分配
SCOPE([Measures].[Utilisation Percentage]);
SCOPE([Date].[Date].MEMBERS);
SCOPE([bedlabel].[hierarchy].MEMBERS);
THIS = [Measures].[Utilisation Mins]/
(60*24
* count(descendants([bedlabel].[hierarchy].currentmember, [Bedlabel].[Bedlabel]))
* count(descendants([Date].[date].currentmember, [Date].[Day]))) ;
END SCOPE;
END SCOPE;
END SCOPE;
我得到了與crossjoin方法相同的結果。在AS2008中,作用域賦值結果和舊的交叉連接方法沒有區別?它仍然總是超現實的數字,我無法解釋。
看看這個鏈接(有一個例子)http://www.purplefrogsystems.com/blog/2009/11/scope-problems-with-mdx-calculated-members/。您可能需要根據日期維度使用SCOPE功能。 – Mez
如果你可以在Adventure Works中重建,我會爲你找到解決方案。 –
它令人尷尬,但我從未與Adventure Works合作過,現在我一眼就找不到一個相同的容量範例。 – Pho