0

我有一张有很多地址记录的表。新数据已添加到表中,我想查找与现有名称、邮政编码、街道匹配的所有新记录,这些新记录已分配给相同的 client_id (1) 以及某些其他条件(结果代码)。我正在努力的部分是获取与现有记录匹配的新记录的 id。

现有记录的 date_exported int(8) 是过去某个日期,添加的新记录的 date_exported 为 0。

使用下面的 SQL 并在 date_exported 字段周围使用 MIN 它显示 0 date_exported 记录,但由于分组和拥有,ID 没有与 SQL 的其余部分排序。如果没有 MIN,它会显示正确的 id 和数据,但它适用于 date_exported !=0 的旧记录 - 我想找到添加的 date_exported = 0 的新记录

SELECT id, name, postcode, street, result_code, MIN(date_exported), COUNT(*) AS cnt 
  FROM fulf.third_party 
 where client_id = '1' 
   and (result_code >= '0' 
   and result_code < '1000' and result_code != '400')  
 GROUP BY name, postcode, street having cnt > 1 order by id asc
4

1 回答 1

0

像这样的东西应该工作:

select t.*
from (
    SELECT name, postcode, street, MIN(date_exported) as MinDate, COUNT(*) AS cnt 
    FROM fulf.third_party 
    where client_id = '1' 
        and (result_code >= '0' 
        and result_code < '1000' and result_code != '400')  
    GROUP BY name, postcode, street 
    having cnt > 1 
 ) tm
inner join fulf.third_party t on tm.name = t.name
    and tm.postcode = t.postcode 
    and tm.street = t.street
    and tm.MinDate = t.date_exported
于 2013-04-02T13:12:03.843 回答