SQL Query Hilfe

speedone

New Member
Guten Abend,

ich habe eine Frage zu einer SQl Abfrage. Zum Hintergrund, es handelt sich hierbei um eine Abfrage von einem Warenwirtschaftsprogramm für das Exportieren von Lieferscheinen.

Meine Frage ist, wie man in SQL eine Art optimale WHERE Anweisung realisieren kann.
Konkret geht es um die Tabelle: "Artalter".
In dieser Tabelle werden kundenspezifische Bestellnummern hinterlegt.
Es soll nun also zu einem Artikel die dazugehörige Kundenbestellnummer ermittelt werden. Diese muss aber nicht existieren und ist somit optimal.
So wie die SQL Anweisung momentan ist, werden nur Datensätze geliefert, bei denen ein Artikel eine Kundenbestellnummer hat.
Wie müsste der Befehl abgeändert werden, dass wenn in der Tabelle Artalter kein passender Eintrag steht, trotzdem der Datensatz ausgegeben wird und die Kundenbestellnummer einfach leer ausgegeben wird.

Zusammengefasst, wenn in einer Tabelle in einer verschachtelten Anweisung kein passender Datensatz durch die Bedingung existiert, gebe das angeforderte Feld leer aus, ansonsten gebe das gefundene Feld zurück.

Code:
SELECT Beleg.Belegnummer, Beleg.Datum, Beleg.Vorname, Beleg.Name, Beleg.Strasse, Beleg.Land, Beleg.Plz, Beleg.Ort, Kunden.Nummer, Kunden.Telefon1, Beleg.FreierText1, Beleg.FreierText2, Beleg.LText1, BelegP.Posnummer, BelegP.Artikelnummer, BelegP.Bestellnummer, Artalter.Bestellnummer AS Kundenbestellnummer, BelegP.Bezeichnung, BelegP.Menge 
FROM Beleg, BelegP, Kunden, Artalter 

WHERE Beleg.Belegtyp='L' 
AND Kunden.Nummer = Beleg.Adressnummer AND Beleg.Datum Between :'Anfangsdatum' and :'Enddatum' 
AND BelegP.Belegnummer = Beleg.Belegnummer 
AND Beleg.Lager = '4' 
AND Artalter.Artikelnummer = BelegP.Artikelnummer 
AND Artalter.Id = 'AK' 
AND Artalter.AlternativArtikel = Kunden.Nummer


Ich hoffe ich konnte das Problem trotz der komplexität verständlich beschreiben.
 
Last edited by a moderator:
Back
Top