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

Antwort per Email an