嗨,我有一张下表说价格
CostID ItemID Level EffectiveFrom EffectiveTo
6274751 12345 1 12/02/2013 NULL
6274751 12345 1 13/02/2013 NULL
6274751 12345 2 12/02/2013 NULL
6254784 12345 1 12/02/2013 NULL
6254784 12345 1 13/02/2013 NULL
6244784 12345 9 12/02/2013 NULL
我希望能够编写一个查询,通过比较 3 列“CostID”、“ItemID”和“Level”来查找重复的行,并仅显示重复的行
预期输出第 1 部分
CostID ItemID Level EffectiveFrom EffectiveTo
6274751 12345 1 12/02/2013 NULL
6274751 12345 1 13/02/2013 NULL
6254784 12345 1 12/02/2013 NULL
6254784 12345 1 13/02/2013 NULL
一旦我得到上面的结果,我想从最后一个重复行更新 EffectiveTo 表
第 2 部分的预期输出
CostID ItemID Level EffectiveFrom EffectiveTo
6274751 12345 1 12/02/2013 13/02/2013
6274751 12345 1 13/02/2013 NULL
6254784 12345 1 12/02/2013 13/02/2013
6254784 12345 1 13/02/2013 NULL
我试过这个:
{
SELECT *
FROM price
WHERE ItemID IN
( SELECT ItemID
FROM price
GROUP BY ItemId HAVING COUNT(distinct level) > 1
)
ORDER BY CostID }
对于查询的第一部分,但无法得到我想要的结果,任何帮助将不胜感激。
谢谢