【问题标题】:How to get counts from related tables filtered by dates in both tables如何从两个表中按日期过滤的相关表中获取计数
【发布时间】:2020-02-10 16:40:33
【问题描述】:

我有两个表 A 和 B,如下所示。 A 中的 AccountID 与 B 中的 AccountID 有关系。

A

AccountID   CmpName AccFlag SysStartTime
A1          Test1   1       1/1/2020
A2          Test2   0       1/2/2020
A3          Test3   1       1/2/2020


B

ContactId   AccountID   ConFlag SysStartTime
C1          A1          1       1/1/2020
C2          A1          1       1/1/2020
C3          A1          0       1/1/2020
C4          A2          1       1/2/2020

我想获取 A 中在 B 中有 3 条相关记录的记录数。我使用带有 DAX 的计算列做到了这一点:

 getcount = COUNTROWS(RELATEDTABLE(B))

然后创建另一个计算列来标记具有 getcount = 3 的列。

但问题是我想检查 A 中在给定时间在 B 中有 3 条相关记录的记录数。所以我需要通过两个表中的 sysStartTime 进行过滤。例如,我想获取截至 2010 年 1 月 1 日在 B 中有 3 条相关记录的 A 中的记录数。所以结果应该是 1。请告诉我如何使用 Measure 而不是计算列来做到这一点。

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    你应该可以做这样的事情:

    SUMX ( A, IF ( COUNTROWS ( RELATEDTABLE ( B ) ) = 3, 1 ) )
    

    假设您有一个与 AB 都有关系的日期表,则该日期表上的切片器将应用于度量,您可以设置所需的任何日期。

    【讨论】:

    • 谢谢。我还想按 A 和 B 中的 AccFlag 和 ConFlag 列进行过滤。我可以按 AccFlag 添加过滤器,但找不到将 ConFlag 过滤器添加到上述 DAX 中的方法。对此有何建议?
    • 您可以使用例如分别是FILTER(A, A[AccFlag] = 1) 和/或FILTER(B, B[ConFlag] = 1) 而不是A 和/或B
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    • 2021-04-13
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多