Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi,

ich bin in SQL leich eingerostet und will ne bestandsabsuche nach inkonsistenzen durchführen.

(Bitte nicht über normalisierung etc. lästern, das ganze ist ein Uraltsystem und das problem hier ist stark auf den Kern reduziert...)

Wir haben 2 Tabellen "Bestellung" / "Bestellartikel", beide sind über "Bestellnr" und "ArtikelLfdNr"(Position des Artikels-laufende Nr) referenziert.

Jetzt hab ich versucht eine Agfrage hinzubekommen, die die "Bestellnr" und "ArtikelLfdNr" von Sätzen aus "Bestellartikel" ausgibt, die keine Referenz zu einem Satz aus "Bestellung" bilden kann.

Mein etwas misslungener Ansatz lautet so:


select * from Bestellung b, Bestellartikel a 

where b.Bestellnr = a.Bestellnr and b.ArtikelLfdNr = a.ArtikelLfdNr

Das soll eig. ein subselect werden, der sozusagen die positiven fälle abdeckt, darum wollte ich ein zweiten Select bauen, der die Schnittmenge bildet, also Sätze findet, die nicht in dieser Menge enthalten sind.

Aber ich hab das Gefühl, dass ich SQL mit so ner Logik irgendwie vergewaltige...

Ich komm aber grade nicht auf den eleganten Lösungsweg

Geschrieben

du suchst alle sätze aus Bestellartikel die nicht in Bestellungen zu finden sind, wenn ichs richtig verstanden habe, würde ein WHERE NOT EXISTS helfen. weiß aber nich ob dein DBS das kann ^^

SELECT * 

  FROM Bestellartikel b 

 WHERE NOT EXISTS (SELECT * 

                     FROM Bestellungen a 

                    WHERE a.Bestellnr = b.Bestellnr 

                      AND a.ArtikelLfdNr = b.ArtikelLfdNr)

Geschrieben

ich wuerd einfach nen leftjoin von der haupttabelle machen und dann in der nebentabelle abfragen ob der primaer schluessel null ist


SELECT *
FROM t1
LEFT JOIN t2 ON (t1.primary = t2.verknuepfung)
WHERE
t2.verknuepfung IS NULL
[/PHP]

Geschrieben

danke für eure antworten.

"where not exists" wird bei uns leider nicht unterstützt...

Dafür haben experimente mit JOIN mit den ganzen Zusätzen zum erfolg geführt.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...