PowerBI中DATE的多对多关系

问题描述 投票:-1回答:3

我需要能够在多对多关系表中计算度量。这是我的两个表:

合同表

Serial#  ContractTyp  StartDate    EndDate
A        MP           1/1/2017    1/6/2018
B        ML           10/24/2017  6/30/2020
A        ML           1/6/2018    12/30/2019
C        MU           5/15/2018   1/1/2021

性能表

Serial#  Diff  Good  Bad  Date
A        15    1     0    1/30/2017
B        -24   1     0    12/17/2017
A        57    0     1    4/22/2017
A        18    1     0    2/1/2018
C        123   0     1    9/12/2018

所以,我的测量很简单。它只是按序列号计算好百分比。

NUM_GOOD = CALCULATE(COUNTA('Performance'[Good]),'Performance[Good] IN {"1"})
NUM_BAD = CALCULATE(COUNTA('Performance'[Bad]),'Performance[Bad] IN {"1"})
PERFORMANCE_METRIC = NUM_GOOD/(NUM_BAD + NUM_GOOD)

我需要能够为每个序列号运行该性能指标,但是仅当机器处于MP或MU ContractTyp时才运行。因此,我需要它能够查看性能表中的日期,并确保该日期在合同表上的序列号为MP或MU的合同表的StartDate和EndDate之间。

因此,例如,如果我想查看最近两年中带有MP或MU的ContractTyp的所有Seri​​al#的性能,我希望结果看起来如下:

Serial#  PERFORMANCE_METRIC
A        50%
B        100%
C        0%

提前感谢!

我需要能够在多对多关系表中计算度量。这是我的两个表:合同表序列号ContractTyp StartDate EndDate A MP 1/1/2017 ...

powerbi dax
3个回答
0
投票

一种方法是通过将处于序列号,开始日期和结束日期级别的合同表转换为序列号和日期级别,在Power BI中创建一个新表。例如,如果数据具有以下记录:


0
投票

使用合并查询添加另一个可能的答案。无需创建关系,您可以直接合并两个表。如果您之前没有做过此操作,则可以在编辑查询窗口中访问它。使用序列号作为键合并两个表后,可以使用下面的公式作为过滤器:


0
投票

下面是计算列的公式,您可以将其添加到性能表中以返回True / False值(请参阅注释)。>>

解释逻辑:

© www.soinside.com 2019 - 2024. All rights reserved.