SQL查找重复条目并插入新列

时间:2010-10-06 01:12:43

标签: sql sql-server tsql sql-server-2000 sql-update

我有一个包含列的表:日期,电话,姓名和事件。

我需要一个首先识别重复电话条目的查询,然后将具有较早日期的名称分配给事件列。

1 个答案:

答案 0 :(得分:2)

使用:

UPDATE x
   SET x.event = y.name
  FROM YOUR_TABLE x
  JOIN YOUR_TABLE y ON y.phone = x.phone
  JOIN (SELECT t.phone,
               MIN(t.date) As min_date
          FROM YOUR_TABLE t
      GROUP BY t.phone
        HAVING COUNT(*) > 1) z ON z.phone = y.phone
                              AND z.min_date = y.date
                              AND z.min_date < x.date

但如果存在重复的最小值,则无法解决。