PDA

Vollständige Version anzeigen : ODBC Fehler beim Aufruf dieses SQL-Befehls


Neo909
25.01.2002, 10:00
Erstmal zur Erklärung:
Ich habe zwei Tabellen(Informix 7.2) über ODBC in Access eingebunden und will jetzt folgende SQL-Abfrage über Access ausführen:

SELECT COUNT(informix_tabelle1.Betrieb_Kdnr)
FROM informix_tabelle1
WHERE (((informix_tabelle1.Betrieb_Kdnr) In (SELECT DISTINCT informix_tabelle2.Betrieb_Kdnr FROM informix_tabelle2 WHERE informix_tabelle2.Betrieb_nr=3100 AND informix_tabelle2.jahr_mon = 200112)));

Beim Ausführen der Abfrage bekomm ich einen ODBC-Fehler, der mich auf einen Syntax-Error hinweist!!

Hintergrund ist folgender:
In der Tabelle tabelle1 stehen Kundennummern, welche in dieser Tabelle nur einmal vorkommen.
In der Tabelle tabelle2 stehen diese Kundennummern ebenfalls, allerdings enthält diese Tabelle Dubletten.
Mit Hilfe der SQL-Abfrage soll die Anzahl aller Kundennummern der Tabelle tabelle2 ausgegeben werden, aber ohne Dubletten und unter Einbeziehung der zwei Bedingungen: Betrieb-Nr (Betrieb_nr) = 3100 und Zeitraum (jahr_mon) = Dez 2001 (200112).

Wenn ich die Abfrage unter TelNet direkt auf dem Server ausführe, funktioniert sie ohne Probleme!! Unter Access bekomm ich wie gesagt einen Syntax-Fehler!!

Wer kann mir helfen den Fehler zu finden?? Ich hab die Abfrage mal ohne den WHERE Block ausgeführt und sie hat unter Access funktioniert, es muss also irgendwie am WHERE liegen!!

Oder irre ich mich völlig?!?! :confused:

Joachim Hofmann
25.01.2002, 12:14
Hallo,

falls es eine Access-Abfrage (keine SQL-Pass-Through oder so) Abfrage ist:

Datumsliterale müssen spezielles Format haben (Auszug)

Zur Suche nach Datensätzen vom 10. Mai 1996 in einer Datenbank mit deutschen Einträgen müssen Sie die folgende SQL-Anweisung verwenden:

SELECT *
FROM Bestellungen
WHERE [Versanddatum] = #5/10/96#;

Siehe auch FAQ von Donaubauer Abschnitt VBA.-


HTH

Neo909
25.01.2002, 12:21
Erstmal Danke für die Antwort!!

Das Datum wird einfach als Integer hinterlegt, da es ja kein wirkliches Datum ist!! Es ist einfach die Zahl 200112 für Dez 2001...

Ich habe die Zeitraumbedinung auch mal rausgenommen, aber es geht trotzdem nicht...

Joachim Hofmann
25.01.2002, 17:11
Was mir nur noch einfällt: vielleicht versteht Access (Jet) nicht "IN (SELECT...)"
weil die Hilfe sagt nur folgendes aus:

...
Syntax
Ausdr [Not] In(Wert1, Wert2, . . .)
...

SELECT *
FROM Bestellungen
WHERE Region In ('Dortmund','Bochum','Essen')
...

also nur literale Listen, kein SELECT. Das wäre schade eigentlich! ;-|
vielleicht eine SQL-Pass-Through Abfrage probieren (frage mich nicht nach Einzelheiten ;-)) oder im Extremfall ADO probieren, falls es denn für Informix einen ADO-Provider gibt.

<NOLOGIN>
10.02.2002, 13:27
Hallo ,

vielleicht ist es nur ein KLAMMERN-Fehler ab dem ersten WHERE :PROBIERE MAL : WHERE (:::)IN (SELECT ::: FROM ::)

GRUß
CEM
AUS MANNHEIM

Gast
27.05.2004, 14:03
Bitte prüfen ob Null-Values vorkommen. MfG. G. F.