CDaoRecordset: SQL-Funktionen in SELECT-Anweisung

rettich

Grünschnabel
Hallo,

ich hab folgendes Problem: ich greife über eine abgeleitete CDaoRecordset-Klasse über ODBC auf eine Oracle-Datenbank zu. (So weit funktioniert auch noch alles.) Ich möchte jetzt aber in der SELECT-Anweisung die SQL-Funktion "ADD_MONTHS(<date>,<month>)" verwenden, bekomme aber jedesmal folgende Fehlermeldung:
"Undefinierte Funktion 'ADD_MONTHS' in Ausdruck."

Das Datum direkt im Code zu berechnen funktioniert deshalb nicht, da die Funktion in der WHERE-Klausel steht und <date> und <month> 2 Datenbankfelder sind.

Hat jemand eine Idee, wie ich die Funktion verwenden kann. Wenn es so nicht funktionieren kann, dann bitte auch sagen, dann muss ich nach einer alternative Suche (z.B. <date> + <month> * 31)
 
Hallo rettich,
Das Datum direkt im Code zu berechnen funktioniert deshalb nicht, da die Funktion in der WHERE-Klausel steht und <date> und <month> 2 Datenbankfelder sind.
,
Warum geht das nicht, nimmt doch ein weiteres SELECT-Statement im WHERE zum Berechnen.

Du heißt nicht zufälligerweise Thomas oder?

Gruß
tino
 
Nein, ich heiß nicht Thomas.

Aber wie soll die verschachtelte SQL-Anweisung aussehen?

Vielleicht kannst du folgende Anweisung mal umschreiben:

Code:
select * from auftrag where typ=1 and add_months(beginn, dauer) > sysdate
 
Hallo Rettig,

ich glaube ich habe dich falsch verstanden, denn das Problem ist ja nicht ihrgendeine Rechnung in der where Bedingung, sondern einen Monat auf ein Datum zu addieren.
Leider fällt mir auf die schnelle auch nicht ein wie dieses funktionieren sollte.

HTML:
select * from auftrag where typ=1 and (select Rechnung as Datum) > sysdate

Tut mir leid. Aber es soll auch eine DATEDIFF funktion geben. Vielleicht kannst du die ja verwenden.

Gruß
tino
 
Das Problem liegt nicht unbedingt an der Funktion, (dann hätte ich das Thema auch unter SQL aufgemacht,) sonder daran, dass die Klasse CDaoRecordset überhaupt keine SQL-Funktionen unterstützt.

Aber trotzdem Danke für deine Hilfe.
 
Zurück