2011-11-26 32 views
2

我也有事實表有兩個日期列:開始日期和FinishDate:措施之一在兩個不同的層面

enter image description here

而且我已經有兩個不同的關係鏈接與事實表時間表。

我已經創建了基於時間表時間維度,其中包括這個維度來我的立方體:

enter image description here

所以結果我有一個基於時間表中的兩個不同的維度(Created_On和Updated_On) 。

現在我想瀏覽我的立方體,我想是兩個數值:已在時間和已在同一時間內被更新的事實計數一段時間被創建的事實計數。

我可以分別得到他們每個人,但不能在同一時間:

enter image description here

我怎樣才能得到它?我是否需要更改倉庫結構?我需要更換我的魔方嗎?或者我需要在這種情況下使用MDX?

回答

0

MDX Calculated members是你在找什麼。我們需要的是將維度從「開始」更改爲「完成」日期。如何將開始日期轉換爲完成日期?

我們可以使用一個字符串操作和變化「手動」維度的名稱:

StrToMember( REPLACE([StartDate].currentmember.uniqueName, "StartDate", "FinishDate") 

這一點,如果這兩個日期方面分享它們的結構,將從「開始日期」的成員更改爲「完成日期'維度。

現在我們可以通過創建一個元組只需創建我們的措施:

WITH MEMBER [MyMeasureOnFinishDate] AS ([Measure].[MyMeasure], [StartDate].defaultmember,StrToMember(REPLACE([StartDate].currentmember.uniqueName, "StartDate", "FinishDate") 

這不是測試,但你的想法,你會如何解決這個

+0

有在MS SQL Analysis Services中的REPLACE功能? – demas

+0

你應該有訪問的VBA和Excel函數的列表 - > http://msdn.microsoft.com/en-us/library/aa178231%28v=sql.80%29。aspx,但這取決於您的安裝 – ic3

1

我已經找到了解決辦法:

  • 我在事實表中有一個事實的兩個記錄 - 一個事實的開始和一個事實的結尾
  • 我有一個時間fi視場中的事實表
  • 我添加兩個int字段的事實表(A和B)。這些字段的值是(1,0)用於開始記錄和(0,1)用於結束記錄。

所以,我有這樣的記錄:

fact1 01.10.2011 1 0 
fact1 04.10.2011 0 1 
fact2 02.10.2011 1 0 
fact2 10.10.2011 0 1 

所以,總和(A)給出了每起事實日期的計數。總和(B)給出了每個日期的結束事實計數。