SQLTabelle und LokaleTabelle

25/03/2008 - 11:21 von Kurt Langeder | Report spam
Hallo NG!

Ich habe ein merkwürdiges Problem bei der Ausgabe von Daten in einer
Access-Abfrage. Die Abfrage sieht vereinfacht so aus:

SELECT sTab.ID, sTab.Feld1, aTab.Feld2, aTab.ID
FROM sTab INNER JOIN aTab ON sTab.Feld0 = aTab.Feld0

Wobei "sTab" eine über ODBC eingebundene Tabelle vom SQL-Server, und
"aTab" eine lokale Access-Tabelle ist. Beide Tabellen haben einen
Primàrschlüssel (ID-Feld) und sind über das Feld "Feld0" (ein
Textfeld) miteinander verbunden. Wird die Abfrage in Access
ausgeführt, werden richtigerweise ca. 8000 Datensàtze ausgegeben.

Wird jedoch auf ein Feld in der Access-Tabelle sortiert (z.B. ORDER BY
aTab.Feld2), werden nur noch ca. 4000 Datensàtze ausgegeben.

SELECT sTab.ID, sTab.Feld1, aTab.Feld2, aTab.ID
FROM sTab INNER JOIN aTab ON sTab.Feld0 = aTab.Feld0
ORDER BY aTab.Feld2

Sortiert man auf ein Feld aus der SQL-Tabelle (z.B. ORDER BY
sTab.Feld1) funktioniert wieder alles, d.h. alle ca. 8000 Datensàtze
werden geliefert.

Was stimmt hier mit dem ORDER BY-Statement nicht, wenn es sich auf ein
Feld aus einer lokalen Tabelle bezieht?

Umgebung: Access97 (SR-2), SQL-Server2005 (SP 1)

Danke und Schöne Grüße
Kurt
 

Lesen sie die antworten

#1 Stefan Hoffmann
25/03/2008 - 12:57 | Warnen spam
hallo Kurt,
Kurt Langeder schrieb:
Was stimmt hier mit dem ORDER BY-Statement nicht, wenn es sich auf ein
Feld aus einer lokalen Tabelle bezieht?


Seltsam, dieses Phànomen hat man nur, wenn man

a) einen LEFT|RIGHT (OUTER) JOIN hat
und
b) sich das Pràdikat in der WHERE-Klausel auf die àußere Tabelle bezieht

dann wird nàmlich ein INNER JOIN daraus. Ansonsten, seltsam...

Primàrschlüssel (ID-Feld) und sind über das Feld "Feld0" (ein
Textfeld)


Das ID-Feld ist eine Integer und das Textfeld ist kein Memo?


mfG

Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm

Ähnliche fragen