Hallo! > folgendes Problem m�chte ich rein interessehalber mal zur Diskussion > stellen: > > 1. Ich habe folgende QuickAndDirty-Abfrage formuliert (MS-SQL-Server 7.0): > SELECT * FROM A > WHERE A1 < 1000 > AND A1 NOT IN > (SELECT B1 FROM B) > > 2. Das lief monatelang hervorragend. > > 3. Pl�tzlich lierferte diese Abfrage - ohne jede Fehlermeldung - keine > Ergebnisse mehr. > > 4. Umgebaut auf: > SELECT * FROM A > LEFT OUTER JOIN > B ON A.A1 = B.B1 > WHERE A1 < 1000 > > 5. Schon ging�s wieder! Hat das was mit der Anzahl der Datens�tze in B zu > tun?
Beide Varianten m�ssen verschiedene Ergebnisse liefern. Variante 1 sucht in A die A1, die kleiner als 1000 und NICHT in B sind. Variante 2 sucht alle in A, die kleiner als 1000 sind. Wenn die urspr�ngliche Abfrage keine Ergebnisse liefert, dann kann das doch daran liegen, dass alle A1 in A auch in B vorhanden sind, oder? Ansonsten ist Variante 1 schneller als 2 und kann durch "NOT EXISTS" noch beschleunigt werden. Freundliche Gr��e Joachim van de Bruck | [aspdedatabase] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
