在EazyBi for Jira Cloud中统计含特定状态部署子任务的父问题数
MDX自定义度量实现符合条件的父问题统计
以下是两种常见立方体结构下的实现方案,你可以根据自己的模型调整维度和度量名称:
方案一:父问题与子任务分属不同维度
如果你的立方体中父问题和子任务是分开的维度(比如[Issue]维度存父问题,[Sub-Task]维度存子任务,且两者有关联关系),可以用Exists函数快速判断关联:
WITH MEMBER [Measures].[Qualified Parent Issues Count] AS COUNT( Filter( -- 遍历所有父问题成员 [Issue].[Issue].[Issue].Members, -- 检查当前父问题是否存在符合条件的子任务 EXISTS( -- 筛选类型为deployment、状态为A或B的子任务集合 {[Sub-Task].[Type].[deployment]} * {[Sub-Task].[Status].[A], [Sub-Task].[Status].[B]}, -- 关联到当前父问题 [Issue].[Issue].CurrentMember ).Count > 0 ) ) SELECT [Measures].[Qualified Parent Issues Count] ON 0 FROM [Your Cube Name]
关键逻辑说明
Filter遍历所有父问题,逐个检查是否满足条件Exists函数会返回当前父问题关联的、符合类型和状态要求的子任务集合,Count > 0表示该父问题存在符合要求的子任务COUNT最终统计所有通过筛选的父问题数量
方案二:父问题与子任务同属一个维度
如果父问题和子任务都在[Issue]维度下,通过Parent Issue层级关联(比如子任务的Parent Issue属性指向父问题),可以用嵌套Filter实现:
WITH MEMBER [Measures].[Qualified Parent Issues Count] AS COUNT( Filter( -- 遍历所有父问题成员 [Issue].[Parent Issue].[Parent Issue].Members, -- 统计当前父问题下符合条件的子任务数量,大于0则保留 SUM( Filter( -- 遍历所有子任务成员 [Issue].[Issue].[Issue].Members, -- 关联到当前父问题 + 匹配类型和状态 [Issue].[Parent Issue].CurrentMember = [Issue].[Parent Issue].CurrentMember AND [Issue].[Type].CurrentMember = [Issue].[Type].[deployment] AND ([Issue].[Status].CurrentMember = [Issue].[Status].[A] OR [Issue].[Status].CurrentMember = [Issue].[Status].[B]) ), [Measures].[Issue Count] ) > 0 ) ) SELECT [Measures].[Qualified Parent Issues Count] ON 0 FROM [Your Cube Name]
关键逻辑说明
- 外层
Filter遍历父问题,内层Filter筛选出属于该父问题、类型为deployment且状态为A/B的子任务 SUM计算这些子任务的数量,大于0说明父问题符合要求- 最终用
COUNT统计符合条件的父问题总数
注意:请将代码中的
[Your Cube Name]、维度名称(如[Issue].[Issue])、度量名称(如[Measures].[Issue Count])替换为你实际立方体中的对应名称。
内容的提问来源于stack exchange,提问作者Odyseus_v4
相关产品推荐
相关产品推荐

