我需要提取信息未正确插入数据库的所有行。基本上一个人不能同时在2个会话中,所以我想得到2个会话重叠的所有行。
我有以下代码,这些代码是我之前提出的问题所建立的,但似乎无法获得重叠的Sessions数据。
SELECT
a.[abc_id]
,a.[abc_person]
,a.[abc_date]
,a.[abc_duration]
FROM [flx_Session] a
JOIN [flx_Session] b on a.abc_date <= (DATEADD(MINUTE, b.abc_duration, b.abc_date))
AND (DATEADD(MINUTE, a.abc_duration, a.abc_date)) >= b.abc_date
AND a.abc_person != b.abc_person
答案 0 :(得分:0)
除了join子句的最后一部分外,你看起来看起来是正确的。
试试这个:
select
a.[abc_id]
, a.[abc_person]
, a.[abc_date]
, a.[abc_duration]
from [cedar].[dbo].[flx_Session] a
join [cedar].[dbo].[flx_Session] b
on a.abc_date < dateadd(minute, b.abc_duration-1, b.abc_date)
and dateadd(minute, a.abc_duration-1, a.abc_date) > b.abc_date
and a.abc_person = b.abc_person
and a.abc_id != b.abc_id