Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   C++ Paradox DB: YEAR-Funktion geht nicht (https://www.delphipraxis.net/73235-paradox-db-year-funktion-geht-nicht.html)

chullain 16. Jul 2006 19:54

Re: Paradox DB: YEAR-Funktion geht nicht
 
ja, ich mein, wenn ich die Text-Variable mit meinem "SubSelect" befüllt habe, dann muss ich ja die Add-Funktion aufrufen, und dort mein Hautp-Sql-Statement mit dem Outer Join aufrufen, oder?

Also den hier:

Code:
DataModule1->Q2_SQL->SQL->Add("
SELECT ks.Jahr, MAX(ks.Stichtag) AS Stichtag, SUM(ks.Umsatz) AS Umsatz
FROM Konten k
LEFT JOIN ????? ks ON k.LftNr = ks.LftNr_Konto
WHERE k.Kunden_Nr = :kunden_nr AND ks.stichtag < :stichtag
GROUP BY jahr
ORDER BY jahr")
...nur was kommt an die Stelle mit den Fragezeichen (????) ?

Gruss,
chullain

mkinzler 16. Jul 2006 19:56

Re: Paradox DB: YEAR-Funktion geht nicht
 
Wie stehen diese beiden Abfragen im Verhältnis?

marabu 16. Jul 2006 20:06

Re: Paradox DB: YEAR-Funktion geht nicht
 
Hallo ihr zwei beiden,

ihr entfernt euch immer weiter von der Lösung des Problems, welche ich in Beitrag #4 beschrieben habe - das Schlüsselwort ist BDE-View. Local-SQL kennt keine Views wie Standard-SQL, aber durch den Trick mit dem Speichern eines SELECT-Statements in einer SQL-Datei und die Einbindung dieser SQL-Datei als Tabellenreferenz werden Views "möglich".

Mich würde interessieren, welcher Fehler genau gemeldet wird. Es muss sich auf jeden Fall um einen Laufzeitfehler handeln und ich vermute, dass die SQL-Datei KSVIEW.SQL nicht an der erwarteten Stelle steht.

Freundliche Grüße vom marabu

chullain 17. Jul 2006 11:05

Re: Paradox DB: YEAR-Funktion geht nicht
 
Hallo,

also wenn ich diesen SQL-Statement absetzte:

SQL-Code:
SELECT ks.Jahr, MAX(ks.Stichtag) AS Stichtag, SUM(ks.Umsatz) AS Umsatz
FROM Konten k
LEFT JOIN "ksview.sql" ks ON k.LftNr = ks.LftNr_Konto
WHERE k.Kunden_Nr = :kunden_nr AND ks.stichtag < :stichtag
GROUP BY jahr
ORDER BY jahr
Dann in der Form:

Code:
DataModule1->Q2_SQL->SQL->Add("Select..."ksview.sql"...");
dann bekomme ich schon mal die Fehlermeldung: ...Function call missing ) , klar, weil ich mit den Hochkommata das Select-Statement zumache und dann erwartet der Compiler, das Schliessen der Funktion Add mit der Klammer )

Meine Frage, ist wie kann ich diess Datei einbinden, so wahrscheinlich ist es total verkehrt...

Gruss,
chullain

Waldteufel 17. Jul 2006 11:47

Re: Paradox DB: YEAR-Funktion geht nicht
 
Hi Chullain. :hi:

Zitat:

Zitat von chullain
Meine Frage, ist wie kann ich diess Datei einbinden, so wahrscheinlich ist es total

Nein. Es ist sogar genau richtig. Du musst nur das Anführungszeichen escapen, sodass es zum String-Inhalt zählt.

So geht's hoffentlich:
Code:
DataModule1->Q2_SQL->SQL->Add("Select...\"ksview.sql\"...");
(man beachte den dezenten Backslash ;-) )

Gruß,
Waldteufel

chullain 17. Jul 2006 12:59

Re: Paradox DB: YEAR-Funktion geht nicht
 
ok, vielen Dank erstmal, die Lösung kann manchmal so einfach sein, jetzt kriege ich aber die Fehlermeldung dass ...Expressions in group by are not supported...

Obwohl ich wie beschrieben, die SQL Statements aufgebaut habe:

SQL-Code:
/* ksview.sql */ 
SELECT LftNr_Konto, Stichtag, Umsatz, EXTRACT(YEAR FROM Stichtag) as Jahr
FROM Konto_Stand

SQL-Code: markieren
SQL-Code:
SELECT ks.Jahr, MAX(ks.Stichtag) AS Stichtag, SUM(ks.Umsatz) AS Umsatz
FROM Konten k
LEFT JOIN "ksview.sql" ks ON k.LftNr = ks.LftNr_Konto
WHERE k.Kunden_Nr = :kunden_nr AND ks.stichtag < :stichtag
GROUP BY Jahr
Die Datei ist auf jeden Fall im richtigen Ordner

Gruss,
chullain

marabu 17. Jul 2006 15:16

Re: Paradox DB: YEAR-Funktion geht nicht
 
Bitte prüfe die Korrektheit des SQL-Codes zuerst außerhalb deines Programms. Du kannst dazu den Database-Desktop von Borland verwenden oder jedes andere BDE-kompatible Werkzeug. Wenn ich mich recht erinnere, so hatte ich den SQL-Code bei mir getestet. Bei Fehlern innerhalb deines eigenen Programms kann ich dir nicht so gut helfen.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz