Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Fehler bei Select - group by (https://www.delphipraxis.net/63813-fehler-bei-select-group.html)

Quake 23. Feb 2006 09:00

Datenbank: firebird • Version: 1.5 • Zugriff über: IBConsole

Fehler bei Select - group by
 
Hallo,

ich habe mir zum testen eine SQL-SELECT gebastelt, die ich wie folgt in die IBConsole eingegeben habe :

SQL-Code:
select A.ID, B.ID, B.ARTIKELNAME, B.GESAMTPREIS from TABELLE_X A join TABELLE_Y B on A.ID=B.X_ID;
So funktioniert das auch wie gewünscht aber wenn ich GROUP BY hinzufüge

SQL-Code:
select A.ID, B.ID, B.ARTIKELNAME, B.GESAMTPREIS from TABELLE_X A join TABELLE_Y B on A.ID=B.X_ID group by B.X_ID;
erhalte ich die Fehlermeldung "user name required". Nun meine Frage, was hat der User-Name damit zu tun?

ciao
Martin

Jasocul 23. Feb 2006 09:07

Re: Fehler bei Select - group by
 
Die Meldung kommt mir auch merkwürdig vor.
Trotzdem ist dein Statement falsch. Wenn du ein "group by" verwendest, müssen die Felder, die nicht darin enthalten unter einer Aggregatfunktion stehen (z.B. SUM).

Quake 23. Feb 2006 09:30

Re: Fehler bei Select - group by
 
Ich habe das mal abgeändert zu :

SQL-Code:
select A.ID, B.ID, B.ARTIKELNAME, SUM(B.GESAMTPREIS) from TABELLE_X A join TABELLE_Y B on A.ID=B.X_ID group by B.X_ID;
Die Fehlermeldung ändert sich aber nicht :gruebel: . Ich bin übrigens selbst der Owner, falls das wichtig sein sollte.

Jasocul 23. Feb 2006 09:47

Re: Fehler bei Select - group by
 
SQL-Code:
select A.ID, B.ID, B.ARTIKELNAME, SUM(B.GESAMTPREIS) from TABELLE_X A join TABELLE_Y B on A.ID=B.X_ID group by B.X_ID;
Was ist mit B.ARTIKELNAME und A.ID? stehen beide nicht im group by, bzw haben keine Aggregat-Funktion.
Probier mal:
SQL-Code:
select B.ID, MAX(B.ARTIKELNAME), SUM(B.GESAMTPREIS) from TABELLE_X A join TABELLE_Y B on A.ID=B.X_ID group by B.X_ID;
Wenn B.ID angezeigt wird, brauchst du A.ID nicht wirklich, oder? Ob deine DB ein Max auf einen String verarbeitet, kann ich dir nicht sagen. Notfalls musst du das für einen Test mal ganz rausschmeißen.

Quake 23. Feb 2006 10:04

Re: Fehler bei Select - group by
 
Genau das gleicht :roll: .

Ich habe auch noch ein mal probiert :

SQL-Code:
select ID, sum(GESAMTPREIS) from TABELLE_Y;
und ich erhalte den gleichen Fehler "user name required" :gruebel: .

dfried 23. Feb 2006 10:31

Re: Fehler bei Select - group by
 
Zitat:

Zitat von Quake
Ich habe auch noch ein mal probiert :

SQL-Code:
select ID, sum(GESAMTPREIS) from TABELLE_Y;

Na wenn dann:

SQL-Code:
select ID, sum(GESAMTPREIS) from TABELLE_Y group by ID;

Quake 23. Feb 2006 11:02

Re: Fehler bei Select - group by
 
Ja, so gehts bzw. ist die Spalte ID zu viel

SQL-Code:
select sum(GESAMTPREIS) from TABELLE_Y;
Damit komme ich weiter. *Wer lesen kann ist klar im Vorteil! :lol: Nächste mal schaue ich genau in die Tutorials.*

Mit FlameRobin erhalte ich aber eine aussagekräftigere Fehlermeldung.

Danke allen.

Frank Borland 23. Feb 2006 17:04

Re: Fehler bei Select - group by
 
eine kleine Anmerkung:

die Verwendung der IBConcole mit Firebird 1.5 ist ein Risiko: nach einigen sehr bizarren Fehlermeldungen und Ergebnissen darf nur noch mit
Tools ab Workbench- Klasse gearbeitet werden, zur Not auch mit der IBOConsole.

Gruß


Malte


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 Uhr.

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