目标:删除指定用户访问级别以上的所有级别。
示例:我在 where 子句中有一个用户可以访问 3717 区。在那个区下,有几个部门(图中涂黑)。我正在尝试进行查询,列出 3717 区、3717 区下列出的部门,以及该地区的同级区(区 3701 至 3718)。
我现在所拥有的:我有一个查询,列出了 3717 区、3717 区下列出的部门,以及该地区的兄弟姐妹仅适用于该地区(3701 至 3718 区)。此外,它还列出了该区域(区域 3)、区域 3 及其兄弟区域(区域 3、4、5)、公司、已删除、无效和全部的父区域、所有区域。
我正在尝试修改查询的聚合部分,但没有得到任何结果。
屏幕截图中突出显示的是我唯一感兴趣的内容。如果用户可以访问 Region 35,我希望结果集有 Region 30 到 39,Districts only 在 Region 35 下,所有 Districts 下的部门只在 Region 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]
)