我必須首先承認我是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])
問候, 添
「加載過程」是什麼意思?多維數據集的處理或將新行插入關係數據庫的過程? 數據庫導入是一個每天晚上運行的Windows服務,可以使用此功能擴展它。此外,還有一個存儲過程,每天早上在重建立方體之前執行。那將是一個不錯的地方,不是嗎?順便說一句,舊的維度不應該被修改,並且必須共存。 無論如何,謝謝。 – 2010-07-07 13:49:13
@Tim:我可能會說存儲過程是做這些更改最簡單的地方,而不是改變windows服務。既然你不能改變當前的維度(不知道爲什麼),那麼你必須添加一個新的密鑰到你的FACT表中,以指向在你的文章中陳述的新規則填充的新維度。 – ajdams 2010-07-07 13:56:19
舊的Returns-Dimension應該仍然存在,以便能夠將新的Return-Rule與舊的比較。 我會嘗試使用存儲過程方法。但這意味着它必須每天早上更新整個表格(> 10個月索賠)?!感謝我的事實表中的新密鑰提示,因爲我有時在ssas中堅持使用基礎知識) – 2010-07-07 14:06:51