![]() |
OUTER JOIN mit 2 Bedingungen !?!?!?!
Hi @ all !
Ich habe folgendes Problem: Ich habe folgende Datenbankkonstruktion: Tabelle Artikel: selbsterklärend :-) Tabelle Auftrag: selbsterklärend :-) Tabelle AuftragsPosition: selbsterklärend :-) Tabelle Kunden: selbsterklärend :-) Tabelle ArtikelTarif: beinhaltet pro Artikel/Land-Kombination ein Porto In der Tabelle Artikel gibt es ein Feld FrachtPauschale, welches genommen werden soll, wenn kein entsprechender Eintrag in der Tabelle Artikeltarif vorhanden ist ! Hat einer von euch eine Idee, wie ich per SQL-Statement die entsprechenden Daten bekomme ? Mein bisheriger Weg:
SQL-Code:
Dummerweise läuft dieses Statement nicht mehr unter Sybase ASA 9 :-(
SELECT MAX((IF ISNULL(ArtikelTarif.Tarif,0)=0 THEN Artikel.FrachtPauschale ELSE ArtikelTarif.Tarif ENDIF)) AS Porto
FROM Auftrag,Kunden,Auftragsposition, Artikel LEFT OUTER JOIN ArtikelTarif ON (Artikel.ID=ArtikelTarif.ArtikelID AND Kunden.Laendercode=ArtikelTarif.Laendercode) WHERE Auftrag.KundenID=Kunden.ID AND Auftrag.ID=Auftragsposition.AuftragID AND Auftragsposition.ArtikelID=Artikel.ID AND Auftrag.ID=610 |
Re: OUTER JOIN mit 2 Bedingungen !?!?!?!
Zitat:
Nachtrag: Welches DBMS nutzt du? |
Re: OUTER JOIN mit 2 Bedingungen !?!?!?!
Du hast 2 verschiedene Syntax-Varianten vermischt.
Versuch mal:
SQL-Code:
SELECT MAX((IF ISNULL(ArtikelTarif.Tarif,0)=0 THEN Artikel.FrachtPauschale ELSE ArtikelTarif.Tarif ENDIF)) AS Porto
FROM (Auftrag INNER JOIN Auftragsposition ON Auftrag.ID=Auftragsposition.AuftragID INNER JOIN Kunden ON Auftrag.KundenID=Kunden.ID INNER JOIN Artikel ON Auftragsposition.ArtikelID=Artikel.ID) LEFT OUTER JOIN ArtikelTarif ON (Artikel.ID=ArtikelTarif.ArtikelID AND Kunden.Laendercode=ArtikelTarif.Laendercode) WHERE Auftrag.ID=610 |
Re: OUTER JOIN mit 2 Bedingungen !?!?!?!
@Jelly
Zitat:
@shmia DANKE, es läuft. Kannst du mir noch sagen, warum ich nicht beide Syntax-Varianten benutzen kann ? Ging immerhin vorher auch ! Gruß, Helld ! |
Re: OUTER JOIN mit 2 Bedingungen !?!?!?!
Zitat:
Wenn die 1. Hälfte der Anweisung schwäbisch und der Rest hessisch ist, dann gibts Verwirrung. Und SQL Interpreter sind auch nicht fehlerfrei.... |
Re: OUTER JOIN mit 2 Bedingungen !?!?!?!
Hi !
Nur zur Info: Hab noch mal etwas mit dem SQL rumprobiert: Es reicht auch, einfach die Tabellen Kunden und Artikel vor dem LEFT OUTER JOIN zu klammern !!
SQL-Code:
Gruß, Helld
SELECT MAX((IF ISNULL(ArtikelTarif.Tarif,0)=0 THEN Artikel.FrachtPauschale ELSE ArtikelTarif.Tarif ENDIF)) AS Porto
FROM Auftrag,Auftragsposition, (Kunden,Artikel) LEFT OUTER JOIN ArtikelTarif ON (Artikel.ID=ArtikelTarif.ArtikelID AND Kunden.Laendercode=ArtikelTarif.Laendercode) WHERE Auftrag.KundenID=Kunden.ID AND Auftrag.ID=Auftragsposition.AuftragID AND Auftragsposition.ArtikelID=Artikel.ID AND Auftrag.ID=610 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz