我在嘗試設置多維數據集計算。我目前的職責是收到匯率,並在月初發送。有時他們會在這個月內改變,我會收到一個用於該貨幣的匯率。遞歸日級計算的彙總
最初的問題是LastNonEmpty使用被質疑的粒度,這意味着當我查詢大部分日子時沒有匯率,所以計算失敗。我取代了匯率的措施,初步形成了具有遞歸計算,但後來有以下幾點:
WITH
MEMBER [Measures].[EOD]
AS
Aggregate({NULL:[Date].[Calendar Y M D].CurrentMember}, [Measures].[End Of Day Rate])
因此,在日期維度看時,它會得到最新的匯率。這使得每天的計算如下:
MEMBER [Measures].[Converted]
AS
SUM
(
{[Currency].[Currency].[Currency] * [Date].[Calendar Y M D].CurrentMember},
(
(
[Measures].[Sales]
)
/[Measures].[EOD]
)
)
最後我用這個在查詢:
SELECT
{
[Measures].[Converted]
}
ON COLUMNS,
NON EMPTY
{
[Date].[Calendar Y M D].[Calendar Day].&[2010-Q3-08-01] :
[Date].[Calendar Y M D].[Calendar Day].&[2010-Q3-08-31]
}
ON ROWS
FROM [Cube]
這一切工作正常,但最好我寧願由年/月來查詢,因爲這些是月末報告。我可以在代碼層中總結所有這些,但我寧願讓MDX自己做。
問題是計算幾乎在日期級遞歸完成,那麼我希望他們捲到月份(甚至年份)級別。
我也嘗試了貨幣轉換向導,交換匯率上面的時間聚集之一,但嘗試瀏覽多維數據集在SSMS鎖定了服務器,因爲它試圖做聚合整個日曆:(
有什麼建議最好採用什麼方法?
一個有趣的方法,但我認爲它不會奏效 - 每天都會有數據需要轉換,但每天不會有匯率 - 我需要使用數據的最新匯率,在一天的水平,回顧該貨幣的最新匯率。我想知道現在是否可以通過遞歸CTE視圖來生成匯率... – Meff 2010-07-27 07:50:18
OK,所以遞歸CTE的工作,我開始用我隨後沿着日期向上走的匯率,使用我遇到的下一個匯率貨幣。最後4個CTE,1是遞歸的:o – Meff 2010-07-27 09:50:28