這是SQL Server的問題,所以這裏是我與工作表(注:列NAME
是代碼集的名稱):如何刪除用於刪除SQL中重複項的內部查詢的重複項?
表:CODE SET
CODE_SET_ID | NAME
-------------+-----------
1 | JACKETS
2 | PANTS
3 | SHIRTS
表:CODE SET DETAIL
CODE | DESCRIPTION | CODE_SET_ID
---------------+----------------+------------
BLUE | BLUE JACKET | 1
BLUE | BLUE JACKET | 1
GREEN | GREEN JACKET | 1
GREEN | GREEN JACKET | 1
PURPLE | PURPLE JACKET | 1
我現在寫的查詢查找其代碼集所有重複的代碼集和代碼那些代碼集代碼也屬於這些。下面的查詢將返回
JACKETS, BLUE, 2
JACKETS, GREEN, 2
我怎麼會纏繞在下面的查詢另一查詢,這樣我只得到JACKETS
?
SELECT
bcs.NAME, bcsd.CODE, bcsd.DESCRIPTION, COUNT(*)
FROM
CODE_SET_DETAIL as bcsd
INNER JOIN
CODE_SET as bcs ON bcsd.CODE_SET_ID = bcs.CODE_SET_ID
GROUP BY
bcs.NAME, bcsd.CODE, bcsd.DESCRIPTION
HAVING
COUNT(*) > 1
到目前爲止,我使用WHERE EXISTS
已經試過,但結果集看起來不正確的。
爲什麼你的表格樣本與列名稱中的SQL不匹配,或者你的輸出與查詢匹配? – NetMage
在'GROUP BY'之前放置'WHERE bcs.NAME ='JACKET''。 – Eric