0

Kann jemand bitte mit einer SQL-Abfrage helfen, die ich gegenüberstelle.SQL-Abfrage für SSRS-Bericht Visual Studio-Abfrage-Designer

Derzeit verwende ich Visual Studio 2013 Query Designer für meine SSRS-Berichte und versuche, Schüler auszuwählen, die an ihrer aktuellen Schule angemeldet sind. Wenn ich jedoch meine Abfrage für einen ausgewählten Schüler teste, gibt es alle möglichen Schulen zurück und sagt, dass der Schüler alle 317 von ihnen besucht hat, was falsch ist. Meine Frage ist, wie finde ich die Schule, die ein Student besucht hat?

Der Abfrage-Code ist unter:

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

warum u mit Firmen Cross Join tun ... –

+0

links haben versucht, richtig und vollständig schließt sich und erhalten „Fehler in Join-Ausdruck kann nicht Abfragetext analysieren..“ Ich lese auch "Wenn WHERE-Klausel mit CROSS JOIN verwendet wird, funktioniert es wie ein INNER JOIN." @sandeeprawat – teejay

Antwort

0

Wie Sandeep erwähnt, Sie Kreuz sind zu Company Beitritt (Ich gehe davon aus dieser Schule ist?). Sie müssen wahrscheinlich INNER JOIN an Company und eine JOIN Klausel angeben. Die Tabelle Student könnte CompanyID oder etwas haben? Sie können JOIN das auf der Company.ID. So wird die Abfrage etwas wie folgt aus:

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 = '....')