目標: 指定されたユーザー アクセス レベルより上のすべてのレベルを削除します。
例: 地区 3717 にアクセスできる where 句にユーザーがいます。地区 3717、地区 3717 の下にリストされている部門、およびその地域のみのその地区の兄弟 (地区 3701 から 3718) をリストするクエリを作成しようとしています。
私が今持っているもの: 地区 3717、地区 3717 の下にリストされている部門、およびその地域のみのその地区の兄弟 (地区 3701 から 3718) をリストするクエリがあります。また、その親、そのエリア (エリア 3) のすべてのリージョン、エリア 3 とその兄弟 (エリア 3、4、5)、会社、削除済み、無効、およびすべてがリストされます。
クエリの集計部分を変更しようとしていますが、どこにも行きません。
スクリーンショットで強調表示されているのは、私が興味を持っていることだけです。ユーザーが地域 35 にアクセスできる場合、結果セットには地域 30 から 39、地域 35 の下の地区のみ、地域 35 の下のすべての地区の部門のみが必要です。 . 画像をご参照ください。助けてください
WITH
MEMBER [Measures].[ParameterValue] AS
[Organization].[Organization Hierarchy].CurrentMember.UniqueName
MEMBER [Measures].[ParameterCaption] AS
iif([Organization].[Organization Hierarchy].CurrentMember.Level.Ordinal =1,"",[Organization].[Organization Hierarchy].CurrentMember.Properties( "Organization Id" ) + " - ") +
[Organization].[Organization Hierarchy].CurrentMember.Name
MEMBER [Measures].[ParameterLevel] AS
[Organization].[Organization Hierarchy].CurrentMember.Level.Ordinal
MEMBER [Measures].[User Count] AS
[Measures].[User Organization Count]
-
Aggregate(
{[Organization].[Organization Hierarchy].parent
,DESCENDANTS([Organization].[Organization Hierarchy])}
,[Measures].[User Organization Count]
)
SELECT
{
[Measures].[ParameterValue]
,[Measures].[ParameterCaption]
,[Measures].[ParameterLevel]
}
ON COLUMNS,
FILTER
(
DESCENDANTS([Organization].[Organization Hierarchy],5, SELF_AND_BEFORE)
,[Measures].[User Count]
)
ON ROWS
FROM [Cube]
WHERE
(
[Users].[User Name].& [User_with_access_to_district_level__this_user_is_assgined_to_district_3718],
[Organization].[Organization Hierarchy Name].&[typeofhierarchy]
)