我有一张桌子:
CREATE TABLE ProductPrice
(
ProductId INT NOT NULL,
EffectiveDt DATE NOT NULL,
InactiveDt DATE NOT NULL,
Price DECIMAL(10,2) NOT NULL
)
我想要做的是使用更新,以便将具有最低有效 dt 的记录的 inactivedt 更改为每个产品 id 的下一个最低有效 dt 的记录的有效 dt - 1。
所以说我们有:
21/07/2012 26/07/2012
24/07/2012 28/07/2012
27/07/2012 30/07/2012
这将更改为:
21/07/2012 23/07/2012
24/07/2012 26/07/2012
27/07/2012 30/07/2012
到目前为止,我有:
UPDATE pp
SET pp.InactiveDt = (SELECT pe.EffectiveDt
FROM ProductPrice pe
WHERE pe.ProductId = pp.ProductId
)
FROM ProductPrice pp;
但这并不能真正满足我的需要。