2013-03-21 62 views
1

在我的表中,我有许多产品。我注意到有人使用相同的代码上传了一些产品。我如何运行一个查询,以查找productno字段中不唯一的所有行?在Access中通过查询查找重复项

+0

你到目前为止尝试过什么吗? – bendataclear 2013-03-21 16:27:24

+0

不知道从哪里开始,所以没有 – 2013-03-21 16:31:07

+0

苏格兰的答案应该很好地识别行,一旦你已经删除/修复重复项,你可以考虑设置列的索引设置为'是,不重复',这将不允许任何进一步复制要插入的产品,但可能会带来丑陋的错误。 – bendataclear 2013-03-21 16:36:21

回答

2

据我了解的问题,你想看到哪些行包括重复productno值,而不仅仅是其productno值被复制。

如果这是正确的,请在子查询中选择重复的productno值,并将您的表连接到子查询。

SELECT y.* 
FROM 
    [Your Table] AS y 
    INNER JOIN 
     (
      SELECT [productno], Count(*) 
      FROM [Your Table] 
      GROUP BY [productno] 
      HAVING Count(*) > 1 
     ) AS sub 
    ON y.[productno] = sub.[productno] 
ORDER BY y.[productno]; 
+0

我觉得我要么误解了某些东西,要么我被误解了。当我运行这个查询时,我会弹出一个输入值。我遇到了一些具有相同价值的产品,所以现在出于其他人(我们的3000多种产品)可能已经以相同方式上传的担心。所以我只是希望有一个显示查询将显示任何具有不唯一的productno的行。 – 2013-03-21 16:43:11

+0

我的不好,当我输入时,我无意中在productno上出现拼写错误。谢谢你的帮助。 – 2013-03-21 17:10:39

0

试试这个

SELECT productno, count(*) as num FROM Products GROUP BY ProductNo HAVING count(*) > 1