2014-09-04 50 views
0
SELECT Company.CompanyName 
     ,Student.Status 
     ,Student.Level 
     ,Student.PlacementYear 
     ,Company.CompanyCode 
     ,Company.HREmail 
     ,Company.Telephone 
     ,Company.HRContact 
     ,PlacedStudents.DateAdded 
FROM Student 
    RIGHT JOIN (Company INNER JOIN PlacedStudents 
         ON Company.CompanyCode = PlacedStudents.CompanyCode) 
      ON Student.StudentNo = PlacedStudents.StudentNo 
WHERE (((Student.PlacementYear)=" & Year & ")) 
    AND((Student.Status)<>'Still Seeking YOPE') 
ORDER BY Company.CompanyName 

我有這個SQL查詢從當前放置學生的公司提取HR聯繫人。但是,在一家公司有多名學生,因此當我運行查詢時會出現重複。我對SQL相當陌生,我嘗試了DISTINCT,但它似乎沒有做任何事情,重複仍然存在。SQL - 刪除單個字段中的重複項

如何刪除CompanyCode字段中的重複項,以便公司在查詢運行時僅出現一次。

下面是我運行查詢時發生的情況的圖像。希望這是有道理的? http://s3.postimg.org/jarduw9pf/REPORT.png

任何幫助,將不勝感激。

+0

編輯你的問題,包括樣本數據和預期的結果。當多個學生在公司時,要特別注意你想要的結果。 – 2014-09-04 11:30:16

+0

如果有幾個放置的公司,您希望獲得哪個學生?如果您需要公司列表,您需要從公司列表中進行選擇。 – Bulat 2014-09-04 11:34:05

回答

0

您的問題是要求學生放置公司的人力資源聯繫。我認爲這意味着如果你在一家公司有1,2或100,000名學生,你只希望看到公司上市一次?

您當前的查詢返回的學生,PLACEDSTUDENTS這是會導致輸出像

COMPANY_A STUDENT01 ......... 
COMPANY_A STUDENT02 ......... 
COMPANY_A STUDENT03 ......... 

等信息。

如果是這樣,並採取最佳猜測(因爲我不知道什麼是在STUDENT或PLACEDSTUDENTS表中),請儘量不要在SELECT中包含與STUDENT相關的任何內容。

SELECT DISTINCT Company.CompanyName, Company.CompanyCode, Company.HREmail, 
Company.Telephone, Company.HRContact FROM 

,我會很樂意幫助更多,如果你能提供有關的表你真的想從查詢哪些結構和數據的一些例子,瞭解更多信息。

1

該查詢應該給你,已經把學生公司:

SELECT Company.CompanyName 
     ,Company.CompanyCode 
     ,Company.HREmail 
     ,Company.Telephone 
     ,Company.HRContact 
FROM Company 
WHERE EXISTS (SELECT * FROM PlacedStudents INNER JOIN 
       Student ON Student.StudentNo = PlacedStudents.StudentNo 
         WHERE Company.CompanyCode = PlacedStudents.CompanyCode 
         AND Student.PlacementYear =" & Year & " 
         AND Student.Status <>'Still Seeking YOPE') 
ORDER BY Company.CompanyName; 
+0

謝謝!這工作完美。 – mcclosa 2014-09-04 11:50:12

+0

不客氣 – Bulat 2014-09-04 11:50:57