Sql server SQL Server连接困难

Sql server SQL Server连接困难,sql-server,Sql Server,我很难完成以下任务: 我有两个SQL Server表:ImportLog和TShipping 我的应用程序在TShipping表中插入了很多行(例如10行) TShipping(TShipping_ID int, TShipping_CreationDate datetime) 然后(在进程结束时,即几毫秒后),插入1行 导入到ImportLog表中 ImportLog(ImportLog_Date datetime, importlog_Nb int). 在TShipping表中,我

我很难完成以下任务:

我有两个SQL Server表:ImportLog和TShipping

我的应用程序在TShipping表中插入了很多行(例如10行)

 TShipping(TShipping_ID int, TShipping_CreationDate datetime) 
然后(在进程结束时,即几毫秒后),插入1行 导入到ImportLog表中

 ImportLog(ImportLog_Date datetime, importlog_Nb int).
在TShipping表中,我还有一个字段:

importlog_Nb int
我想用importlog table(即importlog.importlog_Nb)的importlog_Nb值更新此字段(TShipping表的importlog_Nb,即TShipping.importlog_Nb)

因此,困难在于,对于TShipping表中的每一行,找到importlog表中与TShipping_CreationDate最接近的importlog_日期的行(最近的,即>=not)
这会在发货后提取最近的导入日志日期,并为其分配一个SQL FIDLE(SQL FIDLE)就好了。或者只是一点格式设置…如果您想要快速而有用的答案,请在此处显示适用表的
CREATE TABLE
语句。为什么不在初始批处理中创建一个本地datetime变量并将该变量用于第二个insert?是ImportLog.ImportLog\u Nb标识字段吗?如果是,请先插入ImportLog记录,然后使用output子句检索它,然后在插入所有TShipping记录时,可以直接将其放入。
UPDATE t
    set t.importlog_Nb = i.importlog_Nb
FROM TShipping t
OUTER APPLY
(
    SELECT TOP 1 i.importlog_Nb, i.ImportLog_Date 
    FROM ImportLog i
    WHERE i.ImportLog_Date >= t.TShipping_CreationDate
    ORDER BY i.ImportLog_Date ASC
) i