【发布时间】:2012-11-26 15:38:07
【问题描述】:
仅当存在更早的插入日期时,我才尝试更新 #tmpResults 表中所有不同的 AccId 和 AccNameHolder 组合的 InsertDate。
表架构如下:
#tmpResults
Trans | AccId | AccountNameHolder | EarlyDate | CardType
PositionCollection
Id | AccId | InsertDate | BtchId
卡错误
AccId | AccNameHolder | BtchId | TransId
这是我迄今为止尝试过的:
UPDATE RES
SET EarlyDate = pc.InsertDate
FROM ( dbo.PositionCollection pc
LEFT JOIN dbo.CardErrors ce ON ce.BtchId = pc.BtchId AND pc.id = ce.Transid )
INNER JOIN #tmpResults RES
ON RES.AccId = pc.AccId
AND RES.AccNameHolder = ce.AccNameHolder
WHERE RES.EarlyDate = (SELECT MIN(InsertDate) FROM PostionCollection)
AND RES.AccId = pc.AccId
AND RES.AccNameHolder = ce.AccNameHolder
【问题讨论】:
-
您能描述一下您的问题吗?你只是在说你在做什么。你有错误吗?
-
嗨 - 我没有收到错误。代码未按预期更新 EarlyDate。这是 SQL Fiddle:sqlfiddle.com/#!3/28a81/8/0AccId 12345 是一个很好的例子,说明日期应该在哪里更新
标签: sql sql-server-2008 tsql