Autor Beitrag
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mo 19.10.09 11:25 
Kann mir mal jemand das Brett vor meinem Kopf wegnehmen?

Ich muss Daten aus einer Access-Datei importieren (*.mdb). Sonst arbeite ich nur mit Firebird.

Folgende Abfrage:
ausblenden SQL-Anweisung
1:
2:
3:
4:
5:
6:
select m.mittelname, a.awg_id
from mittel m
left join awg a 
  on (a.kennr = m.kennr) 
left join awg_zulassung az 
  on (az.awg_id = a.awg_id)


Liefer diese Fehlermeldung:
---------------------------
Fehler
---------------------------
Syntaxfehler (fehlender Operator) in Abfrageausdruck '(a.kennr = m.kennr)

left join awg_zulassung az

on (az.awg_id = a.awg_id)'.
---------------------------
OK
---------------------------

Lasse ich das letzte Join weg, funktioniert es. Woran liegt das?

Danke!
Jens

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mo 19.10.09 11:34 
Moin Jens,

ich würde erstmal ein As zwischen Tabellennamen und Alias setzen, manchmal spinnt Acces da schon. Desweiteren ist dann ja auch die Frage, wie sollen die 3 Tabellen verbunden werden. So würde ich sagen, dass a LEFT JOIN auf az hat und dieses Datenmenge einen LEFT JOIN auf m?

ausblenden SQL-Anweisung
1:
2:
FROM mittel As m
  LEFT JOIN (awg As a LEFT JOIN awg_zulassung As az ON az.awg_id = a.awg_id) ON a.kennnr = m.kennnr


Die Klammern sind dabei schon entscheidend.

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
Nersgatt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mo 19.10.09 11:43 
Ne, das ist es nicht.

Die Verbindung ist Mittel AS M (1:n) AWG as A (1:1) AWG_ZULASSUNG as AZ

Also mittel -> awg -> awg_zulassung

Ich habe die Probleme nur, sobald ich eine 2. Tabelle per Join in die Abfrage holen möchte. Mache ich die Abfrage auf awg und hole per left join die mittel hinzu, klappt es. Hole per left join noch awg_zulassung mit rein, habe ich wieder die selbe Fehlermeldung.

Edit: Deine Abfrage klappt doch, war nur ein Feldname falsch geschrieben. Danke!

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)