Abfrageverwaltung erzeugt nicht ausführbares SQL-Statement

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Abfrageverwaltung erzeugt nicht ausführbares SQL-Statement

Beitrag von WSO »

Ich habe eine etwas komplexe Abfrage mit dem der grafischen Oberfläche erstellt, das aber generierte SQL-Statement ist aber nicht ausführbar.

Code: Alles auswählen

SELECT "abfRechnungundKunde"."kud_name", "abfRechnungundKunde"."rec_datum", "abfRechnungundKunde"."rec_betrag", "abfZahlungenjeRechnungSum"."gelsumme" AS "bezalhlt", "rec_betrag" + "gelsumme" AS "Rest", "abfRechnungundKunde"."rec_id", "abfRechnungundKunde"."kud_id" FROM { OJ "abfZahlungenjeRechnungSum" RIGHT OUTER JOIN "abfRechnungundKunde" ON "abfZahlungenjeRechnungSum"."gel_id" = "abfRechnungundKunde"."rec_id" } WHERE "rec_betrag" + "gelsumme" > '0' ORDER BY "abfRechnungundKunde"."kud_name" ASC, "abfRechnungundKunde"."rec_datum" DESC
Hier die Fehlermeldung

Code: Alles auswählen

SQL-Status: HY000
Fehler-Code: 1000

syntax error, unexpected ')', expecting BETWEEN or IN or SQL_TOKEN_LIKE
Was ist da falsch?
Werden die mit der grafischen Oberfläche zusammengeklickten Abfragen nicht immer korrekt übersetzt?

Gruss,
wolfrem
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Abfrageverwaltung erzeugt nicht ausführbares SQL-Stateme

Beitrag von RobertG »

Hallo Wolfram,

was da falsch läuft lässt sich so nicht sagen. Angeblich stört ein ')', also eine schließende Klammer. Nur hast Du in dem Code gar keine schließende Klammer.
Solchen Konstruktionen würde ich nachbessern:
"rec_betrag" + "gelsumme"
Da steht kein Tabellenbezug drin.
Nimm vielleicht einmal aus

Code: Alles auswählen

{ OJ "abfZahlungenjeRechnungSum" RIGHT OUTER JOIN "abfRechnungundKunde" ON "abfZahlungenjeRechnungSum"."gel_id" = "abfRechnungundKunde"."rec_id" }
die Klammern raus.

Code: Alles auswählen

 "abfZahlungenjeRechnungSum" RIGHT JOIN "abfRechnungundKunde" ON "abfZahlungenjeRechnungSum"."gel_id" = "abfRechnungundKunde"."rec_id" 
Vielleicht wird ja '}' statt ')' gemeint und zu früh gesetzt - müsste vermutlich hinter die WHERE-Bedingung.

Mit welchem Office hast Du die Abfrage konstruiert?

Gruß

Robert
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Abfrageverwaltung erzeugt nicht ausführbares SQL-Stateme

Beitrag von WSO »

Hi Robert,
ist mit der aktuellen LibreOffice Version unter Win7 X64 erstellt.

Habe noch Allerlei probiert, aber ohne Erfolg.
Ich kann ja die Abfrage in den Formularen und Makos verwenden, die funktioniert ja einwandfrei.
Mann muss nicht alles verstehen, sieht mir aber nach nem bug aus.

Danke und Gruss,
Wolfram
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Abfrageverwaltung erzeugt nicht ausführbares SQL-Stateme

Beitrag von WSO »

Hallo Robert,
sorry, aber die Arbrage macht doch noch Probleme.
Die Tabellenbezüge habe ich zur Sicherheit gergänzt.
Leider funftioniert die Summenbildung aber nur bei vorhandener 1:n Beziehung (bei n> 0 !)
Meint hier, wenn es zu einer Rechnung keine Zahlung gibt, bekomme ich den angeforderten Saldo (Feld "Offen") nicht.
Was kann ich da tun?
Gruss,
Wolfram
Dateianhänge
Abfrage.png
Abfrage.png (115.54 KiB) 2223 mal betrachtet
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Abfrageverwaltung erzeugt nicht ausführbares SQL-Stateme

Beitrag von WSO »

Hallo Robert,
ist für mich eigentlich schon viel zu spät, das Thema ist für mich aber sehr wichtig und hat mir keine Ruhe gelassen.
Ich bin zwar kein SQL-Einteiger, habe mit diesem Dialekt aber so meine Probleme.
Habe das Beispiel noch mal ( auf des Wesentliche reduziert).
Abfrage.png
Abfrage.png (74.05 KiB) 2216 mal betrachtet
ich haette jetzt erwartet, dass 10 + nichts = 10 ist (Zeile1), ich kann aus den "nichts" ja auch keine "0" machen.
Kommt vielleicht die Kor.Unterabfrage wieder ins Spiel? Hoffe nicht, das wird dann recht aufwendig bei der Vielzahl derartiger Abragen die ich
in der geplanten Anwendung erwarte -ist immer noch der Prototyp für eine Machbarkeitsstudie.
Liebe Gruesse von den kanarischen Inseln,
Wolfram
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Abfrageverwaltung erzeugt nicht ausführbares SQL-Stateme

Beitrag von RobertG »

Hallo Wolfram,

10 + NULL = NULL
Jede Verknüpfung eines Feldes mit einem leeren Feld ergibt ein leeres Feld. NULL ist nicht '0'.
Wenn Du ein Feld b_wert und ein Feld c_wert miteinander addieren willst und bei leeren Feldern auch ein Ergebnis haben möchtest, d.h. NULL als '0' interpretiert haben willst, dann mache das so:

Code: Alles auswählen

IFNULL("b_wert",0)+IFNULL("c_wert",0)
Gruß

Robert
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Abfrageverwaltung erzeugt nicht ausführbares SQL-Stateme

Beitrag von WSO »

Vielen herzlichen Dank,
das bringt mich riesig voran,
Gruss,
Wolfram
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Abfrageverwaltung erzeugt nicht ausführbares SQL-Stateme

Beitrag von WSO »

Hallo Robert,
ich kämpfe seit Stunden mit einem mekrwürdigen Verhalten von generiertzen SQL-Stetements (aus der Abfrageverwaltung) und bekomme Effekte für die mir kein workaround / keine Lösung einfällt.

Folgendes:
Verwende ich in einem Formular eine als direkt ausführbar gespeicherte Abfrage bringt diese zwar alle Daten korrekt in das Formular, das Formular lässt sich aber nicht mehr Filtern.
Hänge ich die Abfrage (nicht dirket SQL ausführbar) als Datenqulee in das Formular, kommt ein mir nicht nachvollziebarer SQL-Fehler.
Baue ich die Filterfunktion (Makro) aus dem Formular aus funktioniert auch die nicht direkt SQL-ausführbare Anfrage als Datenquelle.

Ich brauche in dem Formular aber die Filterfunktion aufgrund der zu erwartenden Datenmenge.
Habe ein vergleichbares Konstrukt mit einer weniger komplexen Abfrage getestet und das funktionert.

Stehe gerade total auf dem Schlauch.
Ich weiss, ich beanspruche dich gerade stark, aber bitte sei so nett und sxchau dir das doch mal an:
https://www.dropbox.com/s/8qmgvu27539gx ... esktop.odb

Es handelt sich um das Formular "fAuftrag" mit der Abfrage "abfAuftragundKunde"

Danke für deine Unterstützung,
Wolfram
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Abfrageverwaltung erzeugt nicht ausführbares SQL-Stateme

Beitrag von WSO »

ja logisch, da habe ich den Wald vor lauter Bäumen nicht mehr gesehen, ...
Danke,
Wolfram
Antworten