0

有人可以帮我解决我面临的 SQL 查询吗?

目前我正在为我的 SSRS 报告使用 Visual Studio 2013 查询设计器,并且我正在尝试选择在当前学校注册的学生。但是,当测试我对选定学生的查询时,它会返回所有可能的学校,并说该学生已参加了所有 317 所学校,这是不正确的。我的问题是如何找到学生就读/就读的学校?

查询代码如下:

SELECT Person.Firstname, Person.Surname, Company.Name AS School, Company.CompanyCategory, Student.StudentNumber
FROM   Student INNER JOIN
       Person ON Student.ID = Person.ID CROSS JOIN
       Company
WHERE  (Company.CompanyCategory = 'Delivery Location') AND (Student.StudentNumber = '....')
4

1 回答 1

0

正如 Sandeep 提到的,您正在交叉加入Company(我假设这是学校?)。您可能必须INNER JOIN到公司并指定一个JOIN条款。表Student可能有CompanyID什么的?你可以JOINCompany.ID. 所以查询变成了这样:

SELECT Person.Firstname, Person.Surname, Company.Name AS School, Company.CompanyCategory, Student.StudentNumber
FROM   Student INNER JOIN
       Person ON Student.ID = Person.ID INNER JOIN
       --Not sure if CompanyID is the right field
       Company ON Student.CompanyID = Company.ID
WHERE  (Company.CompanyCategory = 'Delivery Location') AND (Student.StudentNumber = '....')
于 2016-07-08T07:12:48.683 回答