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字段中的重复项,以便公司仅在运行查询时出现一次。
下面是我运行查询时会发生什么的图像。希望这有道理吗?
任何帮助都将不胜感激。
答案 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
如果您能提供有关表格结构和数据示例的更多信息,以及您从查询中真正想要的内容,我将很乐意为您提供更多帮助。