構建它到模型
只要正確模擬的:假設你有一個包含措施您分析和外鍵對一個人的尺寸以及日期維度事實表,添加一個新表包含您要分析的範圍的「年齡組」維度。這個表格將包含e。 G。一個記錄「0-9」,一個「10-19」等。
然後將引用年齡段維度的外鍵列添加到事實表中。然後,設置此外鍵的值將是事實表上的SQL更新語句,它計算外鍵引用日期維度的日期與外鍵引用的人員的出生日期之間的差異。這種差異是當時的年齡。由此確定年齡組並將其主鍵用作外鍵列的值。
最後,只需從年齡段維度的年齡段列中創建一個屬性即可。
計算它的飛行
如果你真的要來計算上的蒼蠅,我不知道的表現還是不錯的,但你可以如下嘗試: 您需要的「年齡組「維度。但是沒有必要將它鏈接到你的事實表。然後定義計算成員如下:
member [Measures].[Age at Date] AS
DateDiff('yyyy',
[Person].[BirthDate].CurrentMember.Properties("Key0", TYPED),
Measures.[Date]
)
Member [Measures].[Person Count per Age Group] AS
CASE
WHEN [Age Group].[Age Group].CurrentMember is [Age Group].[Age Group].[0-9] THEN
Filter([Person].[Person Id].[Person Id].Members,
[Measures].[Age at Date] >= 0 AND [Measures].[Age at Date] < 10
).Count
WHEN [Age Group].[Age Group].CurrentMember is [Age Group].[Age Group].[10-19] THEN
Filter([Person].[Person Id].[Person Id].Members,
[Measures].[Age at Date] >= 10 AND [Measures].[Age at Date] < 20
).Count
...
END
這是假設你有每條記錄的一個直接在事實表命名Measures.[Date]
措施的日期。如果情況並非如此,則可以將日期作爲日期數據類型,可能來自日期維度的當前成員,類似於出生日期是如何通過Key0
屬性派生的。我假設您在出生日期屬性鍵的維度中確實使用了Date數據類型,否則,可能需要進行類型轉換。出於這樣的目的,Analysis Services中有許多VBA函數(如上面使用的DateDiff
),如documented here。
你如何得到年齡信息?您是否有一個包含生日的人物維度或(假設有隱私問題的)出生年份,您可以從中計算某個日期的(估計)年齡? – FrankPl
嗨,是的,我有一個出生日期可以從中計算出來。 – Anupheaus