AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DateTime nach Wochentag gruppieren

Ein Thema von Privateer3000 · begonnen am 25. Apr 2010 · letzter Beitrag vom 27. Apr 2010
Antwort Antwort
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

DateTime nach Wochentag gruppieren

  Alt 25. Apr 2010, 16:18
Hi folk,

aus einer SQL-Abfrage enstehend, habe ich mehrere Objekte im DateTime-Format.
Wie kann man das so gruppieren, dass die Wochentage zusammengefasst und als solche
angezeigt werden?
Abgefragt werden die Anzahl der Messwerte und das Datum:
in etwa so:
Select sum(anzahl) FROM messwerte WHERE indate > :MD1
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: DateTime nach Wochentag gruppieren

  Alt 25. Apr 2010, 16:21
Welches DBMS? AFAIK gibt es da keinen standardisierten SQL-Befehl für (ich kann mich aber auch irren).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: DateTime nach Wochentag gruppieren

  Alt 25. Apr 2010, 17:57
Hi DeddyH
ich habe daran noch garnicht gedacht, dies in der SQL-Zeile
zu bearbeiten. Deshalb habe ich es auch nicht im Datenbank-Forum
geschrieben. Eher dachte ich an Delphicode.
Aber ok. Wenn das geht, ich greife per ADO auf mdb zu.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: DateTime nach Wochentag gruppieren

  Alt 25. Apr 2010, 18:10
Wie sieht es so aus?
SQL-Code:
SELECT DATENAME(dw,indate), SUM(anzahl)
FROM messwerte
WHERE indate > :MD1
GROUP BY DATENAME(dw,indate)
Ungetestet, da kein MS-SQL zur Verfügung.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: DateTime nach Wochentag gruppieren

  Alt 25. Apr 2010, 18:46
Danke erstmal,
kann es jetzt nicht gleich ausprobieren.
Melde mich dann hier wieder
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: DateTime nach Wochentag gruppieren

  Alt 25. Apr 2010, 23:23
SQL-Code:
SELECT YEAR(indate) AS jahr,
       MONTH(indate) AS monat,
       DAY(indate) AS tag,
       SUM(anzahl) AS anzahl
FROM messwerte
WHERE indate > :MD1
GROUP BY YEAR(indate), MONTH(indate), DAY(indate)
SQL-Code:
SELECT DateSerial(YEAR(indate), MONTH(indate), DAY(indate)) AS datum,
       SUM(anzahl) AS anzahl
FROM messwerte
WHERE indate > :MD1
GROUP BY YEAR(indate), MONTH(indate), DAY(indate)
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: DateTime nach Wochentag gruppieren

  Alt 26. Apr 2010, 13:54
Danke omata, das sieht plausibel aus.
Werde es testen!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: DateTime nach Wochentag gruppieren

  Alt 26. Apr 2010, 21:12
Beim Testen fiel mir auf, dass ich den Wochentag gruppieren will.
Nicht den Tag im Monat.
Ich glaube das dies nicht mit einem SQL-String zubewerkstelligen ist.
Folglich müssen alle Ergebnisse mit Shortdaynames auseinandergenommen werden.
Aber wie?
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
rawi

Registriert seit: 16. Mär 2010
Ort: im Westen Deutschlands
38 Beiträge
 
Delphi 2010 Professional
 
#9

Re: DateTime nach Wochentag gruppieren

  Alt 26. Apr 2010, 21:55
Bei Access gibt es doch die Funktion Wochentag oder weekday. Weiß allerdings nicht ob die in allen Access-Versionen zur Verfügung steht.

... GROUP BY Weekday([dateingang]); Funktioniert wenn ich das einer ADO-Query im SQL-String mit auf den Weg gebe. Getestet mit Access 2007.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: DateTime nach Wochentag gruppieren

  Alt 27. Apr 2010, 10:46
Danke, hab dann auch mal die Access-Hilfe "bemüht" .
Tatsächlich gibt es diese Funktion.
Nur ist der Rückgabewert ein Integer.
Wen es interessiert, gelöst habe ich das so:
Delphi-Quellcode:
...
Stringlist 'Montag','Dienstag'....
...
SQL.Text:='SELECT sum(anzahl) AS einzelmessung, WEEKDAY(insdate,2) AS Tag'+//2 für Montag
           ' FROM messwerte';
          if nutzdatum.Checked = True then
           SQL.Add(' WHERE A.insdate > HT1');
           SQL.Add(' GROUP BY WEEKDAY(insdate,2)');
...
while not EOF do begin
  analyse.Form7.zf_wochentage.Lines.Add(wotas[fieldbyname('Tag').AsInteger]+':');
  analyse.Form7.zf_wotage_um.Lines.Add(format('%f',[fieldbyname('einzelmessung').AsFloat]));
  analyse.Form7.Chart1.Series[0].Add(fieldbyname('einzelmessung').AsFloat,wotas[fieldbyname('Tag').AsInteger]);
  Next;
 end;
...
Vielen Dank für die Hilfe
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:08 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