【问题标题】:Count how many sub-activities were created based on an activity计算基于一个活动创建了多少子活动
【发布时间】:2018-08-29 14:33:38
【问题描述】:

我有一个存储工作流(案例、子案例)的维度。我想计算每个案例创建了多少个子案例。

工作流维度

Workflow
------------------------------
Case Number    WorkflowType
------------------------------ 
10             Case
20             Case
30             Case
20-1           Subcase
20-2           Subcase
20-3           Subcase
10-1           Subcase

我想要的期望输出是,对于每个案例计算创建了多少子案例。

Workflow
------------------------------------------------
Case Number    WorkflowType      CountOfSubcases
------------------------------------------------
10             Case               1
20             Case               3
30             Case               0
------------------------------------------------
Total                             4

我有一个有效的当前 dax 度量,但在查看多行时底部的总数不显示,仅在选择一个案例时显示。

Total Subcases = 
VAR CC = FIRSTNONBLANK ( Workflow[Case Number], 1 )
RETURN
COUNTX (
    FILTER (
        ALL( Workflow ),
        SUBSTITUTE ( Workflow[Case Number], RIGHT ( Workflow[Case Number], 2 
          ), "" )
            = CC
            && Workflow[WorkflowType] = "SubCase"
    ),
    Workflow[WorkflowID]
 )

如果有人可以帮助我调整我的衡量标准或提出新的衡量标准,那就太好了。

注意:我将报告指向 Analysis Services。

提前致谢。

【问题讨论】:

    标签: dax


    【解决方案1】:

    您可以按如下方式修复您的度量:

    Total Subcases = 0 +
        COUNTX (
            FILTER (
                ALL( Workflow ),
                SUBSTITUTE ( Workflow[Case Number], RIGHT ( Workflow[Case Number], 2 ), "" )
                    IN VALUES( Workflow[Case Number] )
                && Workflow[WorkflowType] = "SubCase"
            ),
            Workflow[WorkflowID]
        )
    

    VALUES 函数返回当前过滤器上下文中所有值的列表,而不仅仅是您之前选择的那个。


    注意:为了使事情更容易处理,我建议在查询编辑器阶段将Case Number 列拆分为两列。然后你就不必处理所有的字符串操作了。


    编辑:注意x IN <Table[column]> 等同于旧的CONTAINS 语法:

    CONTAINS(Table, [column], x)
    

    所以如果你不能使用IN,那么试试这个公式:

    Total Subcases = 0 +
            COUNTX (
                FILTER (
                    ALL( Workflow ),
                    CONTAINS(
                        VALUES( Workflow[Case Number] ),
                        Workflow[Case Number],
                        SUBSTITUTE ( Workflow[Case Number],
                             RIGHT ( Workflow[Case Number], 2 ), "" )
                    )
                    && Workflow[WorkflowType] = "SubCase"
                ),
                Workflow[WorkflowID]
            )
    

    【讨论】:

    • 嗨,亚历克西斯,谢谢你的回答。我正在输入您的度量值,但无法正常工作。我正在使用 SSAS,我认为这就是为什么会吠叫。
    • 它抛出了什么错误?您可能需要为IN 使用旧语言,即CONTAINS 函数。
    • 报告度量 'Measure'[Total Subcases] 在第 6 行第 17 位有语法或语义错误,由 Analysis Services 报告:'IN' 的语法不正确
    • 是的。 IN 是一个较新的功能。请查看我的编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多