Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Abfrage für Monatliche Übersicht (https://www.delphipraxis.net/45860-sql-abfrage-fuer-monatliche-uebersicht.html)

Cyberbob_at_tot 13. Mai 2005 08:39

Datenbank: Access • Version: 2000 • Zugriff über: ADO

SQL Abfrage für Monatliche Übersicht
 
Hallo und Guten morgen,
ich habe ein Problem bei meiner DB!
Ich will nun eine neue Tabelle erstellen mit einer Monatsübersicht.

Meine Tabelle hat Folgende Spalten.

Datum // LS // Anzahl
zb.
1.1.05 72 2
2.1.05 73 1
.
.
.
13.05.05 100 5

Ich will nun daraus eine Tabelle machen in der eine Jahrenübersicht steht

Monat // Anzahl
zb.
Januar 3

bin mit der SQL Abfrage schonmal so weit...
Delphi-Quellcode:
select sum(Anzahl) from tabelle where Datum between trunc(to_date('2005-01-01','yyy.mm.dd'))and trunc(to_date('2005-01-31','yyy.mmydd'));
leider weis ich nun nicht weiter, könnt ihr mir dabei helfen die Lösung zu finden!
mit gehts es nun eigentlich noch darum das ich das ganze für alle Monate mache und alles in eine Neue Tabelle kommt!

MFG

Cyberbob

Delphi_Fanatic 13. Mai 2005 08:51

Re: SQL Abfrage für Monatliche Übersicht
 
Zitat:

Datum // LS // Anzahl
zb.
1.1.05 72 2
2.1.05 73 1
.
Natürlich ist jetzt jedem sofort klar, was "LS" zu bedeuten hat ... :roll:

Aber um mal Deine Frage zu beantworten : Ich würde die SQL-Funktion "month" benutzen.
Wenn Du z.B. alle Datensätze des Aprils haben willst ... :

select.... from.... where month(Datum) = 4

Delphi_Fanatic 13. Mai 2005 08:52

Re: SQL Abfrage für Monatliche Übersicht
 
P.S. und wenn Du eine monatsweise Aufsummierung haben willst - dann dürfte das "Group by"-Statement für Dich von Bedeutung sein.

Albi 13. Mai 2005 08:53

Re: SQL Abfrage für Monatliche Übersicht
 
Hallo,

sind es zwingend notwendig, alles in eine neue DB zu schreiben? Wenn nicht, dann starte doch jedesmal ne neue Abfrage, wenn du die Daten benötigst.

Du könntest mit ExtractDate oder FormatdateTime (oder so :gruebel:) denn entsprechenden Monat aus dem Ergebnis extrahieren und in die DB schreiben.

Cyberbob_at_tot 13. Mai 2005 08:56

Re: SQL Abfrage für Monatliche Übersicht
 
LS= Lieferschein :-)

Hatte schon vor alles in eine Abfrage zu packen,
daher wird group by das sinvolste sein!

Mal sehen was ich da machen kann!

Es ist nicht nötig jedesmal das ganze in eine Neue Tabelle zu schreiben, war nur ein Lösungsansatz! wen ich einen Guten Query habe, geht das auch Temporer, wird nur ein Diagramm zum betrachten!

Besten dank!

Aber gerne noch weitere vorschläge oder Lösungsansätze!

Delphi_Fanatic 13. Mai 2005 09:04

Re: SQL Abfrage für Monatliche Übersicht
 
Zitat:

wen ich einen Guten Query habe, geht das auch Temporer,
Also ich würd' den Query - wie gesagt - mit Group by und dieser SQL "Month"-Funktion machen.

Zufällgerweise habe ich gerade in diesen Tagen bei mir auch eine Monatsweise- Übersicht gemacht und genau das benutzt und läuft absolut wunderbar.
Übrigens auch recht schnell... :???:

Zitat:

Du könntest mit ExtractDate oder FormatdateTime (oder so ) denn entsprechenden Monat aus dem Ergebnis extrahieren und in die DB schreiben.
Ich würd' niemals irgendwo in einer DB oder Datei redundante Daten speichern.

Cyberbob_at_tot 13. Mai 2005 09:15

Re: SQL Abfrage für Monatliche Übersicht
 
@Delphi_Fanatic
kanst du dein Query posten, dann könnte ich mir daran ein Beispiel nehmen!
wäre nett!

Hatte erst vor, für jedes Jahr eine neue Tabelle innehalb der DB zu mache, aber wenn es sehr schnell geht kann man das ja lassen um immer erzeugen wenn es gerade benötigt wird!
Redundante daten fallen doch nicht an! da ich doch Monate und Anzahl zusammenziehe!

marabu 13. Mai 2005 09:21

Re: SQL Abfrage für Monatliche Übersicht
 
Kleine Starthilfe:

SQL-Code:
SELECT Year(bob.datum) as Jahr, Month(bob.datum) AS Monat, Sum(bob.anzahl) AS Summe
FROM bob
GROUP BY Year(bob.datum), Month(bob.datum)
;
Grüße vom marabu

Gollum 13. Mai 2005 09:27

Re: SQL Abfrage für Monatliche Übersicht
 
Hallo,

oder:
SQL-Code:
SELECT Month(Datum) AS DerMonat, Count(Anzahl)
FROM MeineTabelle
WHERE (Datum Between #1/1/2005# AND #12/31/2005#)
GROUP BY Month(Datum);

Cyberbob_at_tot 13. Mai 2005 11:18

Re: SQL Abfrage für Monatliche Übersicht
 
Danke für euer hilfe klappt super! besten dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 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