DAX 子查询度量?

DAX subquery measure?

我正在努力处理 DAX 查询,想知道您是否可以提供帮助?

考虑这个 table(或可视化)称为 'Builds':

Build....App....Status
Build1...App1...UAT
Build1...App2...Complete
Build2...App1...Complete
Build2...App2...Complete

我想添加一个名为 'AppsOutstanding' 的度量列,以显示该构建的非 'Complete' 的应用程序计数。像这样:

Build....App....Status......AppsOutstanding
Build1...App1...UAT.........1
Build1...App2...Complete....1
Build2...App1...Complete....0
Build2...App2...Complete....0

我几乎需要做一个 'subquery' 测量!?类似于:

SELECT COUNT(Status) FROM Builds
WHERE Build = [The Build In This Row]
AND Status <> 'Complete'

我有点困惑如何将其转换为 DAX?这是我不成功的尝试:

AppsUnavailable = CALCULATE (
    count(Builds[Build]),
    CALCULATETABLE (
        SUMMARIZE ( Builds,Builds[Status] ),
        Builds[Status] <> "Complete"
    ))

提前致谢!

更新

我试过了,但计数不起作用,而且这个 DAX 从我的实际结果中过滤掉了“完成”状态!我不想要的。我只想从计数度量中过滤掉“完成”状态....

AppsUnavailable =
CALCULATE (
    COUNT ( Builds[Build] ),
    FILTER (
        ALL ( Builds[Build] ),
        Builds[Build] = SELECTEDVALUE ( Builds[Build] )
    ),
    FILTER (
        ALL ( Builds[Status] ),
        Builds[Status] <> "Complete"
    )
)

更新 2

我认为我做的事情从根本上是错误的。我真的很愚蠢,只找到其他同名的 'Builds',但它仍然只有 returns 个 1!

AppsUnavailable =
CALCULATE (
    COUNT ( Builds[Build] ),
    FILTER (
        ALL ( Builds[Build] ),
        Builds[Build] = SELECTEDVALUE ( Builds[Build] )
    )
)

更新 3

此查询(在单个 table(无连接)样本上进行测试时)生成此:

Build....App....Status......AppsOutstanding
Build1...App1...UAT.........1
Build1...App2...Complete....0
Build1...App2...UAT.........1
Build2...App1...Complete....0
Build2...App2...Complete....0

但我确实需要这个:

Build....App....Status......AppsOutstanding
Build1...App1...UAT.........2
Build1...App2...Complete....0
Build1...App2...UAT.........2
Build2...App1...Complete....0
Build2...App2...Complete....0

所以 Build1 有 2 个应用程序不完整。

然后我需要研究为什么我在 'live' 环境中得到全 1。它必须与过滤 2 tables 而不是 1....

有关

您可以将 [The Build In This Row] 替换为 SELECTEDVALUE ( Builds[Build] )。 试试这个:

AppsUnavailable =
CALCULATE (
    COUNT ( Builds[App] ),
    FILTER (
        ALL ( Builds[Status], Builds[Build] ),
        Builds[Build] = SELECTEDVALUE ( Builds[Build] )
            && Builds[Status] <> "Complete"
    )
) + 0

powerBI Table 可视化内部使用 SUMMARIZECOLUMNS,它从度量中删除了没有数据的行。您有 2 个选择: - 右键单击​​ GroupBy Column -> “显示没有数据的项目” -在最后一个括号

后的计算中添加+0

更新:

CALCULATE (
    COUNT ( YourTable[App] ),
    FILTER (
        ALL ( YourTable[App], YourTable[Build], YourTable[Status] ),
        YourTable[Build] = SELECTEDVALUE ( YourTable[Build] )
            && YourTable[Status] <> "Complete"
    )
) + 0