1

我们的组织有一对通过接口连接的系统。系统 A 用于创建记录(大约 1000 条/天),系统 B 用于显示它们(来自系统 A 和其他来源)。我们发现来自 A 的一些记录没有正确地穿过接口到 B。我正在尝试确定哪些记录没有穿过。我有 A 中的记录表和 B 中的记录表。我最初使用帐号字段、日期字段和单独的时间字段加入它们。然后我们发现,对于 8-10% 的记录,表 B 中的时间戳是一分钟。与表A中的相应记录不同。(发生在界面中,我们不确定为什么)

通过使用表 B 中而不是 A 中的描述字段,我可以在表 A 中找到那些与 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

我是在正确的轨道上,还是应该完全从不同的方向来解决这个问题?

4

0 回答 0