2014-09-04 47 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