Ich habe in verschiedenen Beiträge (this one, that one und this other one) untersucht und dachte, ich habe die Antwort bekommen.Links Join On And Klausel nicht unterstützt
Nach einer LEFT JOIN
kann ich eine ON [condition] AND [other condition]
hinzufügen (ich habe auch versucht WHERE
). Aber Computer sagt nein. Access sagt weiter, dass der Join-Ausdruck nicht unterstützt wird.
Betrachten Sie die student_records
Tabelle unten:
STUDENTCODE | SEMESTERINDEX
12345 | 20112
12345 | 20113
12345 | 20121
67890 | 0
67890 | 20111
67890 | 20112
ich das Minimum SEMESTERINDEX
für jeden Schüler aus meiner students
Tabelle finden will, das ist oben 20001. (Aufzeichnungen unter fehlerhaft sein können und die 0 und 1 SEMESTERINDEX
ist verwendet für übertragene Kredite.)
Ich benutze Zugang, also gibt es VBA-Funktionen innerhalb der SQL. Es gibt noch mehrere Tabellen, denen ich mich anschließe. Ich zitiere die ganze Frage.
SELECT students.STUDENTCODE, prefixes.PREFIXNAMEENG,
students.STUDENTNAMEENG, students.STUDENTSURNAMEENG, levels.level_name, programs.PROGRAMNAMEENG, calendars.calendar_load,
MAX(student_records.SEMESTERINDEX) AS latest_semester, MIN(student_records.SEMESTERINDEX) AS intake_semester,
FROM student_records LEFT JOIN (
(
(
(
(students LEFT JOIN prefixes ON students.PREFIXID = prefixes.PREFIXID)
LEFT JOIN levels ON students.LEVELID = levels.level_id)
LEFT JOIN programs ON students.PROGRAMID = programs.PROGRAMID)
LEFT JOIN calendar_conversion ON students.SCHEDULEGROUPID = calendar_conversion.schedule_id)
LEFT JOIN calendars ON calendar_conversion.calendar_id = calendars.calendar_id) ON student_records.STUDENTCODE = students.STUDENTCODE AND student_records.SEMESTERINDEX> 2001
GROUP BY students.STUDENTCODE, prefixes.PREFIXNAMEENG, students.STUDENTNAMEENG, students.STUDENTSURNAMEENG, levels.level_name, programs.PROGRAMNAMEENG, calendars.calendar_load;
So habe ich das falsch anbringen AND student_records.SEMESTERINDEX > 2001
?
"Alle Klammern spielen in SQL keine Rolle", tun sie in Access. Der Zugriff ist ärgerlich, da die verbundenen Tabellen in Klammern gesetzt werden müssen. –
@DStanley - nein. Access zeigt Ihnen Abfragen mit ihnen, aber wenn Sie sie herausnehmen und sie an die Jet Engine senden, wird es gut funktionieren - es ist schließlich ein SQL-System. Es ist die Query Builder-Engine, die all diesen Mist einbringt. – Hogan
Ich sehe, so im Grunde berechnen Sie die min und max pro Studentcode in der student_record, wickeln Sie das Ergebnis in minmax-Tabelle, und verbinden Sie diese Tabelle zu student_record. Recht? – Benjamin