2010-05-15 21 views
1

所以我有本書訂單的這個表,它包含了2列,一個是訂單ID(主鍵),另一個是書上說的的ID客戶訂購。例如:SQL查詢到在另一個領域選擇不同的記錄有2個或更多的重複

+---------+--------+ 
| OrderID | BookID | 
+---------+--------+ 
| 0001 | B002 | 
| 0002 | B005 | 
| 0003 | B002 | 
| 0004 | B003 | 
| 0005 | B005 | 
| 0006 | B002 | 
| 0007 | B002 | 
+---------+--------+ 

我想要的是得到的,進行了2周或更多的採購/訂單,例如,如果我運行鍼對上述數據的SQL查詢書籍的ID,我會得到這樣的結果:

+--------+ 
| BookID | 
+--------+ 
| B002 | 
| B005 | 
+--------+ 

我不知道如果這可以在SQL存檔我要建一個簡單的語句,並重復運行對另一種語言的所有記錄的查詢。我需要一些幫助,並感謝您閱讀我的問題。

回答

3

當然這是可以實現使用標準SQL語法。使用GROUPHAVING聲明:

SELECT BookId, COUNT(BookId) AS CNT 
FROM YourTableName 
GROUP BY BookId 
HAVING COUNT(BookId) >= 2 

在此查詢粘貼您的真實表名而不是YourTableName

使用SELECT BookId, COUNT(BookId) AS CNT將返回:

+--------+-----+ 
| BookID | CNT | 
+--------+-----+ 
| B002 | 4 | 
| B005 | 2 | 
+--------+-----+ 
+0

感謝很多的代碼實際工作!但是,我不得不改變COUNT(的BookID)來的BookID爲它工作儘管我不知道爲什麼 – user341956 2010-05-15 15:27:19

+0

另一場只需添加到'SELECT'聲明。看看修改後的版本。 – 0x2D9A3 2010-05-15 15:32:55

+0

它的工作原理就像一個魅力現在非常感謝:) – user341956 2010-05-15 15:49:56

相關問題