Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem mit Group by (https://www.delphipraxis.net/130316-problem-mit-group.html)

Dumpfbacke 6. Mär 2009 10:58

Datenbank: Interbase • Version: 6 • Zugriff über: IBX

Problem mit Group by
 
Hallo Leute,
ich habe ein Problem mit Group by. Ich habe eine Tabelle mit Stunden und einem Datum. Nun möchte ist die Stunde je Monate, je Jahr aufsteigend sortiert haben. In der Tabelle sind unter anderem zwei Felder. Eines mit dem Datum (TerminA) wann die Stunden geleistet worden sind und ein zweite Feld mit den Stunden (Stunden).

Als Ergebnis möchte ich die Stunden je Monat, Jahr aufsteingend haben.

So habe es es mal Versucht geht jedoch nicht

SQL-Code:
Select
extract(Month from TerminA),
extract(Year from Termina),
Sum(Sunden)
From Daten
group by ???
Order by 1,2
Geht so etwas oder muß ich noch zwei Felder in die Datenbank einfügen, wo ich den Monat und das Jahr speichere ?

Dumpfbacke


[edit=Matze][sql]-Tags repariert. MfG, Matze[/edit] Danke

dataspider 6. Mär 2009 11:02

Re: Problem mit Group by
 
SQL-Code:
group by extract(Month from TerminA), ectract(Year from Termina)
Frank

TBx 6. Mär 2009 11:03

Re: Problem mit Group by
 
SQL-Code:
Select extract(Year from TerminA),
       extract(Month from TerminA),
       Sum(Sunden)
  From Daten
  group by 1,2
  Order by 1,2
Du kannst auch im group by die Feldnummer benutzen.

Dumpfbacke 6. Mär 2009 11:07

Re: Problem mit Group by
 
Zitat:

Zitat von dataspider
SQL-Code:
group by extract(Month from TerminA), ectract(Year from Termina)
Frank

Geht nicht. Felermeldung Token unknown extract

Dumpfbacke 6. Mär 2009 11:08

Re: Problem mit Group by
 
Zitat:

Zitat von TBx
SQL-Code:
Select extract(Year from TerminA),
       extract(Month from TerminA),
       Sum(Sunden)
  From Daten
  group by 1,2
  Order by 1,2
Du kannst auch im group by die Feldnummer benutzen.

Das geht auch nicht. Es kommt auch dort die Fehlermeldung Token unknoun 1. Das wäre zu einfach gewesen.

Dumpfbacke

Dumpfbacke 6. Mär 2009 11:10

Re: Problem mit Group by
 
Ich habe noch etwas vergessen. Bei der Abfrage malche ich noch zwei Left Outer Joins falls es wicht für die Lösung ist. Aus der Join Tabelle kommt das Datum. Sorry hatte ich vergessen

Dumpfbacke.

dataspider 6. Mär 2009 11:11

Re: Problem mit Group by
 
Zitat:

Zitat von Dumpfbacke
[Das geht auch nicht. Es kommt auch dort die Fehlermeldung Token unknoun 1. Das wäre zu einfach gewesen.

Dumpfbacke

Vielleicht ist es ja nur dein Schreibfehler :ectract

Frank
[EDIT]kann nich mal meinen Name richtig schreiben...[/EDIT]

Dumpfbacke 6. Mär 2009 11:19

Re: Problem mit Group by
 
Zitat:

Zitat von dataspider
Zitat:

Zitat von Dumpfbacke
[Das geht auch nicht. Es kommt auch dort die Fehlermeldung Token unknoun 1. Das wäre zu einfach gewesen.

Dumpfbacke

Vielleicht ist es ja nur dein Schreibfehler :ectract

Frank
[EDIT]kann nich mal meinen Name richtig schreiben...[/EDIT]

Nein leider nicht. Es ist hier im Forum nur ein Tipfehler. Da ich meinen Coding PC niemals mit dem Internet verbinden würde habe ich es hier von "Hand" übertragen.
Dumpfbacke

dataspider 6. Mär 2009 11:23

Re: Problem mit Group by
 
Aber das Select ohne group by geht?
Wie ist denn das komplette Statement?

Frank

Dumpfbacke 6. Mär 2009 11:25

Re: Problem mit Group by
 
Zitat:

Zitat von dataspider
Aber das Select ohne group by geht?
Wie ist denn das komplette Statement?

Frank

Wenn ich das Sum noch entferne dann geht es super. Jahr,Montat und Summe Stunden je Auftrag

Dumpfbacke

dataspider 6. Mär 2009 11:34

Re: Problem mit Group by
 
Sorry, aber das muss gehen.
Bei Firebird ging es auch schon in der 1.x Version.
Im Zweifellsfall mal lieber mit Alias arbeiten (bei Joins).
Ich denke, der Fehler liegt wo anders.

Frank

dataspider 6. Mär 2009 12:05

Re: Problem mit Group by
 
Hm...

und wenn IB6 doch kein group by über gejointe Felder beherrscht, dann bleibt nur die Denormalisierung über eine View.

Cu, Frank

Dumpfbacke 6. Mär 2009 12:18

Re: Problem mit Group by
 
Zitat:

Zitat von dataspider
Sorry, aber das muss gehen.
Bei Firebird ging es auch schon in der 1.x Version.
Im Zweifellsfall mal lieber mit Alias arbeiten (bei Joins).
Ich denke, der Fehler liegt wo anders.

Frank

Ich habe für den extract einfach mal weggelassen und das Datum "komplett" benutzt. wenn ich dann das Feld bei Group by eintrage geht es; es wird jedoch nach Datum zusammengefügt. Benutze ich anstelle des Feldnamens die 1 so geht es nicht und es kommt die selbe Felermeldung. Ich glaube ich muß halt noch zwei weitere Spalten einfügen mit dem Monat und dem Jahr. Leider

Dumpfbacke

dataspider 6. Mär 2009 12:26

Re: Problem mit Group by
 
Zitat:

Zitat von Dumpfbacke
Ich glaube ich muß halt noch zwei weitere Spalten einfügen mit dem Monat und dem Jahr. Leider
Dumpfbacke

Ich wüde eher einen View erzeugen. Damit geht es definitiv auch und du führst keine Daten doppelt mit.
OK, man kann das über Computed Fields machen, aber ...

[EDIT]
obwohl extra Felder auch einen Vorteil haben. Wenn ich indexiere, ist die Abfrage erheblich schneller.[/EDIT]

Cu, Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr.

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