Datetime PowerBI-在时间戳上比较两组数据

Datetime PowerBI-在时间戳上比较两组数据,datetime,timestamp,powerbi,overlap,Datetime,Timestamp,Powerbi,Overlap,我试图比较两组具有相似性的数据。它们没有所有相同的列,但我只需要比较员工id、开始时间和结束时间。我已经在员工id上创建了一个联接表。实际上,我需要查看两个表的开始时间和结束时间是否相互重叠 以下是数据集1中的数据: Emp ID | Start time | End Time test-a | 11/14/2019 6:48 AM | 11/14/2019 7:35 AM test-a | 11/14/2019 9:02 AM | 11/14/2019 11:46 AM

我试图比较两组具有相似性的数据。它们没有所有相同的列,但我只需要比较员工id、开始时间和结束时间。我已经在员工id上创建了一个联接表。实际上,我需要查看两个表的开始时间和结束时间是否相互重叠

以下是数据集1中的数据:

Emp ID |    Start time      |     End Time
test-a | 11/14/2019 6:48 AM | 11/14/2019 7:35 AM
test-a | 11/14/2019 9:02 AM | 11/14/2019 11:46 AM 
test-a | 11/14/2019 1:00 PM | 11/14/2019 2:00 PM 
test-a | 11/14/2019 5:00 PM | 11/14/2019 9:15 PM 
以下是数据集2的数据:

Emp ID |    Start time      |     End Time
test-a | 11/16/2019 4:48 AM | 11/16/2019 7:35 AM 
test-a | 11/17/2019 9:02 AM | 11/17/2019 9:46 AM
test-a | 11/14/2019 7:00 PM | 11/14/2019 8:00 PM 
test-a | 11/14/2019 5:00 PM | 11/14/2019 9:15 PM 
期望输出

Emp ID |  Start time        |        End Time     |   
test-a | 11/14/2019 5:00 PM | 11/14/2019 9:15 PM  | 
test-a | 11/14/2019 7:00 PM | 11/14/2019 8:00 PM  |
test-a | 11/14/2019 5:00 PM | 11/14/2019 9:15 PM  |   

有人能在PowerBI中帮助解决这个问题吗?提前谢谢

如果我正确理解了这个问题,时间重叠可以定义如下

Given two time periods starting and ending at (StartTime1, End1), (Start2, End2) respectively,
time overlap is the time period (Start3, End3) if Start3 < End3,

where
    Start3 = MAX( Start1, Start2 )
and
    End3 = MIN( End1, End2 )
给定两个时间段,分别从(开始时间1,结束时间1)、(开始时间2,结束时间2)开始和结束,
如果Start3
您可以通过创建Dataset1和Dataset2并逐个比较行来提取重叠

下面是一个使用DAX计算表的示例

Time Overlap = 
SELECTCOLUMNS(
    FILTER(
        CROSSJOIN(
            SELECTCOLUMNS(
                Dataset1,
                "EmployeeID1", Dataset1[EmployeeID],
                "StartTime1", Dataset1[StartTime],
                "EndTime1", Dataset1[EndTime]
            ),
            SELECTCOLUMNS(
                Dataset2,
                "EmployeeID2", Dataset2[EmployeeID],
                "StartTime2", Dataset2[StartTime],
                "EndTime2", Dataset2[EndTime]
            )
        ),
        [EmployeeID1] = [EmployeeID2]
        && MAX( [StartTime1], [StartTime2] ) < MIN( [EndTime1], [EndTime2] )
    ),
    "EmployeeID", [EmployeeID1],
    "StartTime", MAX( [StartTime1], [StartTime2] ),
    "EndTime", MIN( [EndTime1], [EndTime2] )
)
时间重叠=
选择列(
滤器(
交叉连接(
选择列(
数据集1,
“雇员ID 1”,数据集1[EmployeeID],
“StartTime 1”,数据集1[StartTime],
“EndTime1”,数据集1[EndTime]
),
选择列(
数据集2,
“雇员ID 2”,数据集2[EmployeeID],
“StartTime2”,数据集2[StartTime],
“EndTime2”,数据集2[EndTime]
)
),
[EmployeeID1]=[EmployeeID2]
&&最大值([StartTime1],[StartTime2])<最小值([EndTime1],[EndTime2])
),
“雇员ID”,[EmployeeID1],
“StartTime”,最大值([StartTime1],[StartTime2]),
“结束时间”,最小值([EndTime1],[EndTime2])
)