2010-07-07 91 views
1

我必須首先承認我是Analysis Services的新手,但現在必須使用新維度擴展現有的複雜多維數據集。因此,甚至很難說我的問題在哪裏,而不是說我甚至沒有計劃如何開始。好的,我會試着告訴我想要達到的目標。SSAS:命名查詢

鑑於數據源視圖爲named calculation'Returns'。其表達式爲:

CASE WHEN fimaxActionCode IN (1, 2, 3, 4, 5, 8, 9, 12, 14, 17, 18, 20, 21, 22, 23, 24, 25, 30, 31, 32, 35) THEN 
'yes' 
ELSE 
'no' 
END 

fiMaxActionCode是一個ForeignKey和舊規則關於「返回」是一個如權利要求(主measuregroup)是返回當其maxActionCode是上述中的一個。 新的規則是,一個索賠是返回當其maxActioncode是上述之一,但沒有以前的索賠與fimaxActionCode IN(8,10,11,13,19,23,24,26,27,28 ,29,30,33,34,36,37)。以前的索賠是具有相同SSN_Number的TOP(1)索賠,並且此索賠有Repair_Completion_date <。 現在我的問題(希望有人明白我的意思): 如何創建這個新的維度?我的第一個想法是創建一個新的命名查詢「PreviousClaim」:

SELECT  TOP (1) claim.iddata as ClaimID,PreviousClaim.idData as prevClaimID, PreviousClaim.fimaxActionCode, Claim.Repair_Completion_Date as ClaimRepDate, PreviousClaim.Repair_Completion_Date as PrevClaimRepDate 
FROM   tabData AS PreviousClaim LEFT OUTER JOIN 
         tabData AS Claim ON PreviousClaim.idData <> Claim.idData 
WHERE  (PreviousClaim.fimaxActionCode IN (8, 10, 11, 13, 19, 23, 24, 26, 27, 28, 29, 30, 33, 34, 36, 37)) AND (PreviousClaim.fiClaimStatus IN (1, 4, 254, 255, 6)) 
         AND (PreviousClaim.SSN_Number = Claim.SSN_Number) AND (PreviousClaim.Repair_Completion_Date < Claim.Repair_Completion_Date) 
ORDER BY PreviousClaim.Repair_Completion_Date DESC; 

然後我想創造的要求,表-的DataSourceView,檢查它是否有一個「不規則以前要求」的新Named Calculation。這是要走還是我在完全錯誤的軌道?

編輯:另一個問題:我將如何查詢此命名的查詢?可我定義參數變量f.e:

AND ([email protected]) 

問候, 添

回答

1

這是如何的數據加載到實際索賠尺寸(或不管它的名字可能)?我問的原因是,通過在加載過程中添加此規則而不是編寫MDX計算的成員,可以更好地解決此任務。

由於您必須回頭查看數據,以確定該單元是否有使用MDX的fimaxActionCode的前一個聲明,您可以在加載期間輕鬆分離出這些聲明並相應地拆分它們(即如果它有先前的要求或者沒有先前的要求並且屬於其中一個列出的代碼:8,10,11,13,19,23,24,26,27,28,29,30,33 ,34,36,37)。基本上你會創造出某種緩慢變化的維度,因爲我可能認爲這些說法也有某種時間關係,這種說法什麼時候發生,如果它發生了,等等等等。

通過解決問題我建議你可以使用相同的維度,只需添加表示項目是否是索賠的附加字段,如果它不屬於「新」返回標準,則只需單獨留下記錄即可。

有意義嗎?

+0

「加載過程」是什麼意思?多維數據集的處理或將新行插入關係數據庫的過程? 數據庫導入是一個每天晚上運行的Windows服務,可以使用此功能擴展它。此外,還有一個存儲過程,每天早上在重建立方體之前執行。那將是一個不錯的地方,不是嗎?順便說一句,舊的維度不應該被修改,並且必須共存。 無論如何,謝謝。 – 2010-07-07 13:49:13

+0

@Tim:我可能會說存儲過程是做這些更改最簡單的地方,而不是改變windows服務。既然你不能改變當前的維度(不知道爲什麼),那麼你必須添加一個新的密鑰到你的FACT表中,以指向在你的文章中陳述的新規則填充的新維度。 – ajdams 2010-07-07 13:56:19

+0

舊的Returns-Dimension應該仍然存在,以便能夠將新的Return-Rule與舊的比較。 我會嘗試使用存儲過程方法。但這意味着它必須每天早上更新整個表格(> 10個月索賠)?!感謝我的事實表中的新密鑰提示,因爲我有時在ssas中堅持使用基礎知識) – 2010-07-07 14:06:51