Ich habe in den letzten paar Stunden meinen Kopf gegen die Wand geschlagen (peinlich, ich weiß), aber ich kann einfach nicht scheinen, diese Abfrage zu arbeiten! Ich habe mir ähnliche Fragen angeschaut, ein paar Tutorials auf Youtube gesehen, aber aus welchen Gründen auch immer kann ich meinen Code nicht zum Laufen bringen. Also, ach hier bin ich:SQL Query mit mehreren Tabellen Joins
Die Abfrage soll drei Dinge zurückgeben: DEPT (Abteilung), CNUM (Kursnummer) & CTITLE (Kurs Titel) eines Studenten ID, die Kurse während eines bestimmten Semesters nahm.
Zum Beispiel, ich versuche, meine Frage zu bekommen den Kurs Abteilung, Titel und die Nummer einer Person zu erklären, die ID ist 101 und nahm Kurse im Frühjahr 2013 ist unter meinem Code:
set echo on
spool c:\is\program1.txt
SELECT Courses.DEPT, Courses.CNUM, Courses.CTITLE
FROM Students
INNER JOIN Enrollments
ON Students.SNUM = Enrollments.SNUM
INNER JOIN SchClasses
ON Enrollments.CallNum = SchClasses.Callnum
INNER JOIN Courses
ON SchClasses.CNUM = Courses.CNUM
AND Students.SNUM = '101'
AND SchClasses.Semester = 'Sp'
AND SchClasses.Year = '2013';
spool off
Meine Tabellendaten ist wie folgt:
Die folgende Abfrage zurückgibt: keine Zeilen ausgewählt
ich nicht für jemanden, freue mich auf meine zu tun Arbeit für mich, ich suche nur nach einem Punkt in die richtige Richtung. Jeder Rat würde sehr geschätzt werden, danke nett!
ich dieses Problem mit Hilfe von Ihnen gelöst haben alle, ich danke Ihnen sehr. Es stellt sich heraus, dass ich logisch darüber nachgedacht habe - es wurden tatsächlich keine Werte in den Spring-Datensatz eingefügt und somit ist das Ergebnis, dass keine Zeilen gefunden wurden, korrekt!
Es war so eine einfache Aufsicht, aber ich habe es herausgefunden. Danke euch allen; Die richtige Lösung bleibt wie folgt:
set echo on
spool c:\is\program1.txt
SELECT Courses.DEPT, Courses.CNUM, Courses.CTITLE
FROM Students
INNER JOIN Enrollments
ON Students.SNUM = Enrollments.SNUM
INNER JOIN SchClasses
ON Enrollments.CallNum = SchClasses.Callnum
INNER JOIN Courses
ON SchClasses.CNUM = Courses.CNUM
AND Students.SNUM = '101'
AND SchClasses.Semester = 'Sp'
AND SchClasses.Year = '2013';
spool off
Gibt es einen Grund, warum Sie alle Ihre Bedingungen auf die Join-Anweisungen anstatt auf eine WHERE-Klausel anwenden? Wenn es keinen bestimmten Grund dafür gibt, fehlt wahrscheinlich eine WHERE-Klausel. – PhillipXT
Hallo Phillip. Vor allem kein Grund, ich sah gerade ein ähnliches Problem auf diese Weise und ich hoffte auf positive Ergebnisse. Ein vorheriges Poster hat mir auch empfohlen, die erste Bedingung in "where" zu ändern, es wird jedoch das gleiche Ergebnis zurückgegeben: keine Zeilen ausgewählt. – Lukon
Sie stellen zwei zusätzliche Tabellen in Ihrem Schema bereit, sie werden jedoch nicht in Ihrer Abfrage angezeigt. Wie auch immer, ich würde vermuten, dass Ihre Anfrage ein einziges Ergebnis liefert - Intro zu MIS. Bist du vielleicht bei 'PreReq' dabei, wo' cnum' 300 nicht existiert? – sgeddes