SQL加入时间戳,方差为1分钟。 DATEDIFF?

时间:2013-11-12 18:09:54

标签: sql left-join datediff

我们的组织有一对由界面连接的系统。系统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

我是在正确的轨道上,还是我应该从另一个方向接近这个?

0 个答案:

没有答案