共用方式為


屬性屬性 - 定義預設成員

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

當查詢中未包含屬性階層時,會使用屬性階層的預設成員來評估表達式。 每當查詢包含屬性階層或包含來源屬性階層的屬性的用戶階層時,就會忽略默認成員。 這是因為使用查詢中指定的成員。

屬性階層的預設成員是藉由指定屬性成員做為屬性階層 DefaultMember 屬性值來設定。 您可以在維度設計師的 [維度結構] 索引標籤上設定此屬性,或在 SQL Server Data Tools 中 Cube 設計師的 [計算] 索引卷標的 Cube 計算腳本中設定此屬性。 您也可以在定義維度安全性時,為安全性角色指定 DefaultMember 屬性(覆寫維度上設定的預設成員)。 若要避免名稱解析問題,請在下列情況下,在 Cube 的 MDX 腳本中定義預設成員:如果 Cube 參考資料庫維度一次以上,如果 Cube 中的維度名稱與資料庫中的維度不同,或您想要在不同的 Cube 中有不同的預設成員。

當屬性未包含在查詢中時,會使用屬性上的預設成員來評估表達式。 屬性的預設成員是由屬性上的 DefaultMember 屬性所指定。 每當維度階層包含在查詢中時,就會忽略階層中對應至層級之屬性的所有默認成員。 如果查詢中未包含維度的階層,則預設成員會用於維度中的所有屬性。

未指定預設成員時解析預設成員

如果未為屬性階層指定預設成員,而且屬性階層是可匯總的(屬性上的 IsAggregatable 屬性設定為 True),則 (All) 成員是預設成員。 如果未指定預設成員,而且屬性階層無法匯總 (屬性上的 IsAggregatable 屬性設定為 False),則會從屬性階層的最上層選取預設成員。

指定預設成員

Microsoft SQL Server SQL Server Analysis Services 維度中的每個屬性都有預設成員,您可以使用屬性的 DefaultMember 属性來指定。 如果查詢中未包含屬性,則會使用此設定來評估表達式。 如果查詢在維度中指定階層,則會忽略階層中屬性的預設成員。 如果查詢未在維度中指定階層,維度屬性 DefaultMember 設定就會生效。

如果屬性的 DefaultMember 設定為空白,且其 IsAggregatable 屬性會設定為 True,則預設成員為 All 成員。 如果 isAggregatable 屬性設定為 False,則預設成員是第一個可見層級的第一個成員。

屬性 DefaultMember 設定會套用至屬性參與的每個階層。 您無法針對維度中的不同階層使用不同的設定。 例如,如果 [1998] 成員是 [Year] 屬性的預設成員,此設定會套用至維度中的每個階層。 在此情況下,DefaultMember 設定不能是一個階層中的 [1998],在不同的階層中為 [1997]。

如果您在階層中未自然匯總的特定層級定義預設成員,則必須在階層中高於該層級的所有層級中定義預設成員。 例如,在階層 All-Countries-Climate 中,除非您為國家/地區定義預設成員,否則您無法為 Climate 定義預設成員。 無法這麼做會建立查詢時間錯誤。

當階層中的層級自然匯總時,您可以定義階層中任何屬性的預設成員,而不考慮階層中的其他屬性。 例如,在階層 Country-Province-City 中,您可以定義城市的預設成員,例如 [City]。[蒙特利爾] 未定義國家或國家/地區的默認成員。

另請參閱

設定屬性階層 的 [全部] 層級