有人可以帮我解决我面临的SQL查询问题。
目前我正在使用Visual Studio 2013查询设计器来处理我的SSRS报告,并且我正在尝试选择在其当前学校注册的学生。但是,在测试我对所选学生的查询时,它会返回所有可能的学校,并说学生已经参加了所有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 = '....')
答案 0 :(得分:0)
正如桑迪普所说,你正在加入Company
(我假设这是学校?)。您可能需要INNER JOIN
到公司并指定JOIN
条款。表Student
可能有CompanyID
或其他内容?您可以JOIN
Company.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 = '....')
。
所以查询变成这样:
<batch>
<delete id="4e41b5a6f3d94aa4891ab8f9abca94e6" />
</batch>