[MSSQL/T-SQL] Subselect mit AND verknüpfter Bedingung liefert mehr Datensätze als erwartet - Druckversion +- PHP Rocks (https://www.php-rocks.de) +-- Forum: Datenbanken (https://www.php-rocks.de/https://www.php-rocks.de/forum/6-datenbanken.html) +--- Forum: Andere SQL Datenbanken (https://www.php-rocks.de/https://www.php-rocks.de/forum/9-andere-sql-datenbanken.html) +--- Thema: [MSSQL/T-SQL] Subselect mit AND verknüpfter Bedingung liefert mehr Datensätze als erwartet (/https://www.php-rocks.de/thema/60-subselect-mit-and-verknuepfter-bedingung-liefert-mehr-datensaetze-als-erwartet.html) |
Subselect mit AND verknüpfter Bedingung liefert mehr Datensätze als erwartet - Arne Drews - 22.05.2015 Hallo, Ich poste mal zu Beginn die Query, damit ihr wisst, worum es geht: Code: select VLL steht für die Lieferscheine, VFR für Rechnungen.Jeder Beleg, egal ob Lieferschein oder Rechnung hat eine eindeutige BelID . Für den Fall, daß aus einem Lieferschein bereits eine Rechnung erstellt wurde, gibt es die ReferenzBelID in der Rechnung, die der BelID des Lieferscheins entspricht.Die Logik ist damit klar: Code: Selektiere alle Lieferscheine, deren BelegID in keiner ReferenzID der Rechnungen vorhanden ist. Was mich ein wenig aus dem Konzept bringt: So wie oben im Code, bekomme ich 796 Datensätze. Wenn ich in dem Subselect das and Belegekennzeichen = 'VFR' entferne, bekomme ich nur noch 264 Datensätze.Warum bekomme ich denn mehr Datensätze, wenn ich die Ergebnismenge des Subselects weiter eingrenze? Da habe ich ein kleines Verständnis-Problem und freue mich auf erleuchtende Hinweise. RE: [MSSQL] Subselect mit AND verknüpfter Bedingung liefert mehr Datensätze als erwartet - tkausl - 23.05.2015 Zitat:Warum bekomme ich denn mehr Datensätze, wenn ich die Ergebnismenge des Subselects weiter eingrenze? Durch deine invertierte Abhängigkeit (NOT in) ist die Chance, dass in deiner Haupt Query ein Datensatz herausgefiltert wird natürlich höher bei mehr SubQuery results. D.h. desto mehr du die SubQuery einschränkst und desto weniger Zeilen sie erzeugt, desto mehr Zeilen wirst du in der HauptQuery bekommen und umgekehrt. RE: [MSSQL] Subselect mit AND verknüpfter Bedingung liefert mehr Datensätze als erwartet - Arne Drews - 23.05.2015 Verdammt... Du hast recht... Jetzt klingt's sogar logisch... Danke |