PDA

Vollständige Version anzeigen : SQL übersetzen


dancer1970
14.10.2002, 21:08
Hallo, vielleicht kann mir jemand helfen:
Ich habe in Access 97 eine Abfrage erstellt und möchte daraus ein SQL Script für Oracle bekommen.
Leider ist die Syntax etwas anders - kann mir das jemand übersetzen?

SELECT ADRESSE.KEYNR, ADRESSE.ANGELEGT, ADRESSE.GEAENDERT, ADRESSE.ANWENDER, ADRESSE.GELOESCHT,
ADRESSE.ADR_KEY_ANR, ANREDE.ANR_SCHLNR_ALT, ANREDE.ANR_ANSCHRIFT, STRASSE.ANWENDER, STRASSE.STR_1STRASSENNAME,
STRASSE.STR_2STRASSENNAME, ADRESSE.ADR_KEY_ORT, ORT.ORT_ORTSNAME, ORT.ORT_ORTSTEIL, ADRESSE.ADR_NR, ADRESSE.ADR_NAME1,
ADRESSE.ADR_NAME2, ADRESSE.ADR_NAME3, ADRESSE.ADR_LAND, ADRESSE.ADR_PLZ, ADRESSE.ADR_PFACH,
ADRESSE.ADR_PLZ_PFACH, ADRESSE.ADR_ORT, ADRESSE.ADR_STR, ADRESSE.ADR_HNR, ADRESSE.ADR_ERG,
ADRESSE.ADR_TEL1, ADRESSE.ADR_TEL2, ADRESSE.ADR_FAX, ADRESSE.ADR_MAIL, ADRESSE.ADR_BEM,
ADRESSE.ADR_NAME, ADRESSE.ADR_VORNAME, ADRESSE.ADR_FIRMA, ERZEUGER.ERZ_AMTLERZNR,
ADRESSE.ADR_KEY_STR, IIf([adr_str] Is Null,[str_1strassenname],[adr_str]) AS strasse_strasse, IIf([adr_ort] Is Null,[ort_ortsname],[adr_ort]) AS ort_ort
FROM ERZEUGER RIGHT JOIN (STRASSE INNER JOIN (ORT INNER JOIN (ANREDE INNER JOIN ADRESSE ON ANREDE.KEYNR = ADRESSE.ADR_KEY_ANR) ON ORT.KEYNR = ADRESSE.ADR_KEY_ORT) ON STRASSE.KEYNR = ADRESSE.ADR_KEY_STR) ON ERZEUGER.ERZ_KEY_ADR = ADRESSE.KEYNR;

Danke Stefan

<Lif>
16.10.2002, 12:33
SELECT
a.KEYNR,
a.ANGELEGT,
a.GEAENDERT,
a.ANWENDER,
a.GELOESCHT,
a.ADR_KEY_ANR,
a.ADR_NR,
a.ADR_NAME1,
a.ADR_NAME2,
a.ADR_NAME3,
a.ADR_LAND,
a.ADR_PLZ,
a.ADR_PFACH,
a.ADR_PLZ_PFACH,
a.ADR_ORT,
a.ADR_STR,
a.ADR_HNR,
a.ADR_ERG,
a.ADR_TEL1,
a.ADR_TEL2,
a.ADR_FAX,
a.ADR_MAIL,
a.ADR_BEM,
a.ADR_NAME,
a.ADR_VORNAME,
a.ADR_FIRMA,
a.ADR_KEY_ORT,
a.ADR_KEY_STR,
n.ANR_SCHLNR_ALT,
n.ANR_ANSCHRIFT,
s.ANWENDER,
s.STR_1STRASSENNAME,
s.STR_2STRASSENNAME,
o.ORT_ORTSNAME,
o.ORT_ORTSTEIL,
e.ERZ_AMTLERZNR
FROM ERZEUGER e, STRASSE s, Ort o, Adresse a, Anrede n
where a.Schlüssel = o.Schlüssel +
and a.Schlüssel = n.Schlüssel +
and a.Schlüssel = s.Schlüssel +
and a.Schlüssel = e.Schlüssel +
;
Wir immer mit einem Semikolo abgeschlossen.
+ steht für outerjoin (Wenn zum Beispiel kein Datensatz in der Anrede ist willst du trotzdem die Adresse haben.)
in where Klausel musst du noch die entsprechenden Keys einsetzen. (Schlüssel = kenne deine Keys nicht)
achte darauf das auf alle Felder in der Where-Klausel eine Index gelegt ist.

Gruss
LIF

LIF
16.10.2002, 12:47
Soll Wird immer......
heissen
LIF

dancer1970
29.10.2002, 15:05
Danke,
das mit dem + funktioniert gut.

Danke nochmals...