SQL - 删除单个字段中的重复项

时间:2014-09-04 11:23:31

标签: sql

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查询,它从目前放置学生的公司中提取人力资源联系人。但是,一家公司有多名学生,所以当我运行查询时,会有重复。我对SQL很新,我尝试了DISTINCT,但它似乎没有做任何事情,副本仍然存在。

如何删除CompanyCode字段中的重复项,以便公司仅在运行查询时出现一次。

下面是我运行查询时会发生什么的图像。希望这有道理吗? http://s3.postimg.org/jarduw9pf/REPORT.png

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

您的问题是要求学生所在公司提供人力资源联系人。我认为这意味着如果你在一家公司有1,2或1,000,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 

如果您能提供有关表格结构和数据示例的更多信息,以及您从查询中真正想要的内容,我将很乐意为您提供更多帮助。