我们的组织有一对由界面连接的系统。系统A用于创建记录(大约1000 /天),系统B用于显示它们(来自系统A和其他来源)。我们发现A中的某些记录没有正确地穿过B接口。我正在尝试识别哪些记录没有交叉。我有来自A的记录表和B中的记录表。我最初使用帐号字段,日期字段和单独的时间字段加入它们。然后我们发现,对于8-10%的记录,表B中的时间戳是1分钟。不同于表A中的相应记录。(它发生在界面中,我们不确定原因)
通过使用表B中的描述字段而不是A,我可以在TableA中找到那些未与B中的记录链接的记录,从而显示那些未在界面中交叉的项目。
我试图在join语句中使用datediff,尝试允许1分钟的差异,并且仍然可以获得连接。检查结果表明,结果加入了具有截然不同的时间字段的记录。我试图使用的陈述如下:
select TableA.NoteDate, TableB.ReportDT, TableA.NoteTime, TableB.ReportTime,
TableA.UserName, TableA.AcctNum, TableB.AccountNumber, TableA.NoteID,
TableB.Description
from TableA
left join TableB on
(
TableA.NoteDate = TableB.ReportDT and
DATEDIFF(MINUTE, TableA.NoteTime, TableB.ReportTime) <= 1 and
TableA.AcctNum = TableB.AccountNumber
)
WHERE
TableA.txtNoteDate >= '2013-09-01' AND
TableA.txtNoteDate <= '2013-09-30' And
Description is NULL
ORDER BY Description
我是在正确的轨道上,还是我应该从另一个方向接近这个?