Rolf B: sql: Noch ne Nachfrage

Beitrag lesen

Hallo Jörg,

m1.Auftragsdatum > "2021 -01 -01"

Das funktioniert? Die Spaces gehören nicht ins Date-Literal, würde ich behaupten. Aber auf die Menge der gefundenen Rows sollte das keinen Einfluss haben.

Duplikate der KundenID in TableM sind normal, schreibst Du. Ist ja auch logisch, wenn da Aufträge drinstehen, die KundenID kann in TableM dann nur ein Teilschlüssel sein.

In diesem Fall sollte der JOIN von TableK keine zusätzlichen Rows produzieren; für eine ID in TableM sollten immer die gleiche Kundennummer und Straße hinzugefügt werden und der DISTINCT sollte die gleiche Reduktion durchführen.

Ich habe keine Ahnung, warum sich die Ergebnismenge erhöht.

Gibt es einen Mengenunterschied`, wenn Du die NOT EXISTS Klausen weglässt, also zwischen

SELECT DISTINCT m1.KundenID AS Kunden_ID, k.... AS Kundennummer, k.... AS Strasse
FROM tableM m1 JOIN tableK k ON m1.KundenID = k.KundenID

und

SELECT DISTINCT m1.KundenID AS Kunden_ID FROM tableM m1

Wenn ja, versuch mal, die Ergebnismengen abzugleichen. Bei 10% sollte das relativ schnell einen Unterschied liefern. Ein ORDER BY Kunden_ID hilft ungemein 😉. Wenn es zu viele sind, versuch mal die Kunden_ID auf ein Teilintervall einzuschränken, das nicht zu viele Sätze liefert und wo dennoch ein Unterschied ist. Da kann man sich ggf. durch Intervallhalbierung herantasten.

Ah - Moment. I Spy With My Little Eye

k.... AS Strasse,

A Comma.

Sind in deiner realen Query noch weitere Spalten, die den DISTINCT beeinflussen könnten?

Rolf

--
sumpsi - posui - obstruxi