Probleme mit Abfrage

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Probleme mit Abfrage

Beitrag von eBayer »

Hallo,
ich bin nicht der grosse SQL-Spezi..... aber mir fällt auf, daß Du den Bindestrich als Namensbestandteil verwendest....
Habe ich auch anfangs getan, aber ganz schnell wieder geändert.
Du mußt, falls ich mich noch recht erinnere, alles in doppelte Anführungszeichen setzen, damit es trotzdem klappt.
Gerade in zusammengebauten SQL-Statements, also wenn Du variable Werte oder Strings darin verwendest, ist die Lesbarkeit kaum mehr möglich.
Beispiel:
sSQL = "UPDATE ""Kundendatei"" SET ""Zahlung"" = " + "'x' WHERE ""Ausweis-Nr"" = '" + sAusweis + "'" (beachte: z.B. Anführungszeichen ganz am Ende " ' ")
oStatement.executeUpdate(sSQL)

Das ist ein funktionierendes SQL-Statement.....aber bei minimaler Komplexität kaum noch lesbar.

Hoffe, es hilft Dir weiter.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Probleme mit Abfrage

Beitrag von Barlee »

Hallo DerHarry,

zwei kleine Sachen:
1) korrekter Syntax wäre GROUP BY ... ORDER BY (und nicht anders herum)
2) käme es selbst durch Umstellung auf den korrekten Syntax zu einem Fehler, da Du in Deiner Abfrage keine Aggregatfunktion verwendest

>> somit entferne einfach den folgenden Teil GROUP BY "Datum" und probiere erneut.
---
Zum zweiten Teil:
Befehle wie z.B. ADD_MONTHS stehen in der HSQLDB nicht zur Verfügung. Das bieten nur "richtige" Datenbanksysteme.

Alternativ könntest Du folgendes in die WHERE Klausel übernehmen:

Code: Alles auswählen

...WHERE DATEDIFF('dd',"Datum",CURRENT_DATE) <=90
Gruß Barlee
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Probleme mit Abfrage

Beitrag von Barlee »

das mit der Aggregatfunktion habe ich nicht kapiert wie soll das gehen?
OK, dann nochmal etwas deutlicher. Deine Abfrage kann nur OHNE "GROUP BY" funktionieren, denn eine Gruppierung setzt das Vorhandensein einer Aggregatfunktion (z.B. MIN, MAX, AVG, SUM, COUNT usw.) voraus. Eine solche Funktion ist aber in Deiner Abfrage nicht enthalten.
Du stellst es ja selbst fest:
Ohne Group By ist es vorher schon gegangen.
Also entweder Du fügst eine solche Funktion zu Deiner Abfrage hinzu und kannst anschließend über GROUP BY die Gruppierung festlegen oder Du lässt alles so wie es ist.

Was wolltest/willst Du denn mit GROUP BY in Deiner Abfrage erreichen?

Gruß Barlee
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Probleme mit Abfrage

Beitrag von Barlee »

Hallo DerHarry,

Du beziehst Dich auf die Darstellung im Bericht/Report. Hierzu musst Du Dir die Funktion "Gruppierung" im Report Builder anschauen.

Eine Anpassung der Abfrage ist dafür nicht erforderlich.

Gruß Barlee
Antworten