Hallo,
ich habe unter Delphi 1.0 und Paradox 5.0 (BDE) ein Datenbankprogramm entwickelt, jetzt möchte ich eine SQL Abfrage von einer Paradox Datenbank ausführen doch leider sind ja dann keine Subselects erlaubt doch ich muss ein einer Abfrage 2 UND Bedingungen, eine IN Bedingung und eine OR Bedingung im WEHRE Abschnitt unterbringen. Die Abfrage würde dann wiefolgt aussehen:
query1.sql.clear;
query1.sql.add('SELECT K.Kdnr,K.Vorname,K.Name, A.Dokument,A.Anf_am,A.Kdnr,A.Id,A.Erinnerung_level ,A.Erinnerung_Datum');
query1.sql.add('FROM "Kunden" K, "Anford" A');
query1.sql.add('WHERE K.Kdnr = A.Kdnr);
query1.sql.add('and (A.Erinnerung_datum <= :date_limit)');
query1.sql.add('and A.Erinnerung_level IN (1,2,3)');
query1.sql.add('OR (K.Berater ='+chr(39)+berater+chr(39));
query1.ParamByName('date_limit').asDate := Date;
query1.open;
table_kunden.open;
Doch so gehts natürlich nicht.
Was ich ereichen will ist folgendes:
Ich habe 2 DB einen Kundendatenbank und eine Anforderungsdatenbank und ich benötige aus beiden DB Informationen Verbunden sind die beiden DB über das Feld KDNR (Kundennummer) und dürfen nur die Daten angezeigt werden wo das Datum (A.Erinnerung_datum ) <= aktuelles Datum ist. Dann sollen Die Daten angezeigt werden wenn der das Feld K.Berater der Variable berater entspricht oder der Wert des Feldes A.Erinnerung_level in einem bestimmten Bereich (z.B.(1,2,3)) liegt.
So, kann man so eine Abfrage mit "local SQL" realisieren oder muß wirklich in einer WHILE Schleife jeden Datensatz durchblättern und auf die Bedingungen prüfen und dann in einem temporären Feld einen Wert setzen an dem ich später alle anzuzeigenden Datensätze rausfiltern kann.
Über Tipps und Hinweise würde ich mich sehr freuen, sitze nun schon länger an diesem sch... Problem.
Vielen Dank und Grüße Hendrik
ich habe unter Delphi 1.0 und Paradox 5.0 (BDE) ein Datenbankprogramm entwickelt, jetzt möchte ich eine SQL Abfrage von einer Paradox Datenbank ausführen doch leider sind ja dann keine Subselects erlaubt doch ich muss ein einer Abfrage 2 UND Bedingungen, eine IN Bedingung und eine OR Bedingung im WEHRE Abschnitt unterbringen. Die Abfrage würde dann wiefolgt aussehen:
query1.sql.clear;
query1.sql.add('SELECT K.Kdnr,K.Vorname,K.Name, A.Dokument,A.Anf_am,A.Kdnr,A.Id,A.Erinnerung_level ,A.Erinnerung_Datum');
query1.sql.add('FROM "Kunden" K, "Anford" A');
query1.sql.add('WHERE K.Kdnr = A.Kdnr);
query1.sql.add('and (A.Erinnerung_datum <= :date_limit)');
query1.sql.add('and A.Erinnerung_level IN (1,2,3)');
query1.sql.add('OR (K.Berater ='+chr(39)+berater+chr(39));
query1.ParamByName('date_limit').asDate := Date;
query1.open;
table_kunden.open;
Doch so gehts natürlich nicht.
Was ich ereichen will ist folgendes:
Ich habe 2 DB einen Kundendatenbank und eine Anforderungsdatenbank und ich benötige aus beiden DB Informationen Verbunden sind die beiden DB über das Feld KDNR (Kundennummer) und dürfen nur die Daten angezeigt werden wo das Datum (A.Erinnerung_datum ) <= aktuelles Datum ist. Dann sollen Die Daten angezeigt werden wenn der das Feld K.Berater der Variable berater entspricht oder der Wert des Feldes A.Erinnerung_level in einem bestimmten Bereich (z.B.(1,2,3)) liegt.
So, kann man so eine Abfrage mit "local SQL" realisieren oder muß wirklich in einer WHILE Schleife jeden Datensatz durchblättern und auf die Bedingungen prüfen und dann in einem temporären Feld einen Wert setzen an dem ich später alle anzuzeigenden Datensätze rausfiltern kann.
Über Tipps und Hinweise würde ich mich sehr freuen, sitze nun schon länger an diesem sch... Problem.
Vielen Dank und Grüße Hendrik
Comment