2013-01-10 101 views
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條記錄?

+0

對於每個查詢,您的「GROUP BY」是不同的。因此,重複變化的定義。我認爲你的商品編碼比UNQ商品編號多。 – MarkD

回答

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