[quote="Robert_G@Jim
Warum sollte sich eine
DB den
Query plan kaputtmachen um dir die Ergebnisse des SELECT während des Filtern zu präsentieren?
Die SELECT Clause läuft natürlich immer NACH der WHERE Clause. Alles andere wäre Blödsinn.
[/quote]Damit man selber weniger arbeit hat
Aber daran hab ich nicht wirklich gedacht, klingt für mich aber plausibel ...
Delphi-Quellcode:
SELECT A.ID, (SELECT SUM(L.MENGE) FROM LAGER L WHERE L.ID = A.ID) AS LAGER_MENGE
FROM ARTIKEL A
WHERE (SELECT SUM(L.MENGE) FROM LAGER L WHERE L.ID = A.ID) > 0
Aber mal ehrlich. Für mich sieht diese Variante danach aus, dass es er die Unterabfrage zweimal ausführt berechnet. Wenn ja, warum kann er dann nicht damit arbeiten:
Delphi-Quellcode:
SELECT A.ID, (SELECT SUM(L.MENGE) FROM LAGER L WHERE L.ID = A.ID) AS LAGER_MENGE
FROM ARTIKEL A
WHERE LAGER_MENGE > 0
Und falls er es doch optimiert und sich die Ergebnisse der Unterabfrage speichert, verstehe ich noch weniger, warum er die kurze Variante nicht versteht.
Bei Erstellung des
Query Plan steckt bereits so viel Logik und Tricks hinter, warum nicht dabei ... Naja. Das werden nur die Hersteller wissen.