Autor Beitrag
Josef-B
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 293

2003 Server, Win7, Win8
Delphi 2010 Pro, Firebird 2.5
BeitragVerfasst: So 11.07.04 17:36 
Folgendes Problem:

Ich habe ein dbgrid an einer IBQuery:
Es geht um die Anzeige von Summen verschiendener Artikel, (Leergut-Verwaltung)

bei der dazugehörigen SQL-Anweisung:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
SELECT bewegungen.ARTIKELID,
 SUM(bewegungen.menge_abgegeben) as SummeAbgeben,
 SUM(bewegungen.menge_erhalten) as Summeerhalten,
 SUM(bewegungen.menge_abgegeben)-
 SUM(bewegungen.menge_erhalten) as Differenz,
 stamm.bezeichnung
 FROM BEWEGUNGEN
 INNER JOIN stamm ON bewegungen.ARTIKELID = STAMM.ARTIKELID GROUP BY bewegungen.ARTIKELID


bekomme ich folgende SQL-Fehlermeldung:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).

Das ganz bekomme ich auch, wenn ich die Anweisung nur mal ohne Delphi bei IbExpert ausführe.

Ich habe es auch schon mit where probiert, the same.

Irgendwas muss da mit der Verknüpfung der Tabellen sein, nur mit der Tabelle "Bewegungen"
gehts.
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Mo 12.07.04 07:37 
Wenn Ich mich nicht irre, musst du beim inner join noch angeben ob du Left oder Right joinen willst.


Martin
Josef-B Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 293

2003 Server, Win7, Win8
Delphi 2010 Pro, Firebird 2.5
BeitragVerfasst: Mo 12.07.04 08:12 
Das ist es glaub ich nicht. Hab ich schon probiert.

Hab in einem Buch über Interbase nachgesehen, da steht die SQL Anweisung eigentlich so drin. Ich glaube der Firebird kann das nicht richtig interpretieren, kann das sein?
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mo 12.07.04 08:19 
Hi Josef,

versuch mal folgendes:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
SELECT bewegungen.ARTIKELID,
 SUM(bewegungen.menge_abgegeben) as SummeAbgeben,
 SUM(bewegungen.menge_erhalten) as Summeerhalten,
 SUM(bewegungen.menge_abgegeben-bewegungen.menge_erhalten) as Differenz,
 stamm.bezeichnung
 FROM BEWEGUNGEN
 INNER JOIN stamm ON bewegungen.ARTIKELID = STAMM.ARTIKELID GROUP BY bewegungen.ARTIKELID


Grüße
Lemmy
Josef-B Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 293

2003 Server, Win7, Win8
Delphi 2010 Pro, Firebird 2.5
BeitragVerfasst: Mo 12.07.04 08:53 
Hallo Lemmy,

das ist nicht die Lösung. Wenn die Abfrage nur der Summen machen aus der Tabelle bewegungen, dann gehts.

Er hat die Schwierigkeiten, wenn die zweite Tabelle 'Stamm' dazukommt, es geht um die Auflösung eines Fremdschlüssels.

Weißt Du was ich meine?
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mo 12.07.04 09:13 
Hi josef,

habe gerade gesehen, dass Du aus der Tabelle Stamm auch noch was selektierst... Setze die Spalte auch noch in die Group-By

ausblenden Quelltext
1:
2:
3:
stamm.bezeichnung
 FROM BEWEGUNGEN
 INNER JOIN stamm ON bewegungen.ARTIKELID = STAMM.ARTIKELID GROUP BY bewegungen.ARTIKELID, Stamm.Bezeichnung



Grüße
Lemmy
Josef-B Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 293

2003 Server, Win7, Win8
Delphi 2010 Pro, Firebird 2.5
BeitragVerfasst: Mo 12.07.04 11:23 
Ja genau das wars. Danke.

Hatte schon gedacht, es geht nicht, und mir ne Menge Umwege ausgedacht, um es noch anders hinzukriegen.

Firebird ist doch klasse.
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mo 12.07.04 11:28 
Josef-B hat folgendes geschrieben:

Firebird ist doch klasse.


Was soll das heißen???? FB ist NUR klasse ;-)

Grüße
Lemmy