0

我正在尝试获取多个列并从表中显示重复的 ItemCodes。IE。如果 ItemCode 重复多次。

使用查询:

SELECT ItemCode    
    ,DuplicateCount = COUNT(*)
FROM IQR1
WHERE WhsCode = 01
GROUP BY
    ItemCode   
HAVING COUNT(*) > 1  
ORDER BY COUNT(*) DESC 

我得到 38 条记录,每条重复计数为 2。

当我尝试获取另一列 ItemName 时,我只返回了 37 条记录:

SELECT ItemCode
    ,ItemName    
    ,DuplicateCount = COUNT(*)
FROM IQR1
WHERE WhsCode = 01
GROUP BY
    ItemCode
   ,ItemName       
HAVING COUNT(*) > 1  
ORDER BY COUNT(*) DESC 

如何正确修改第一个查询以获取多列并仍返回 38 条记录?

4

1 回答 1

1

将您的第一个查询(通过将其放在派生表中)内部连接回主表,加入 ItemCode。

SELECT
   I.*,
   D.DuplicateCount
FROM
   IQR1 I
   INNER JOIN (
      SELECT
         ItemCode,
         DuplicateCount = COUNT(*)
      FROM IQR1
      WHERE WhsCode = 01
      GROUP BY ItemCode   
      HAVING COUNT(*) > 1
   ) D ON I.ItemCode = D.ItemCode
ORDER BY DuplicateCount DESC
于 2013-01-10T09:30:52.053 回答