【发布时间】:2013-10-10 02:45:49
【问题描述】:
您好,我有一张下表说明价格
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 }
对于查询的第一部分,但无法获得我想要的结果,我们将不胜感激。
谢谢
【问题讨论】:
-
你用的是什么sql?
-
SQL Server 2005,感谢您帮我格式化
-
你想确定的太多了。请具体。请提供您的预期输出。
标签: sql sql-server-2005