collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 90
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14132
  • stats Beiträge insgesamt: 68386
  • stats Themen insgesamt: 9210
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Abfrage gruppiert nach Wochen, Jahre in den Feldern  (Gelesen 334 mal)

Offline hajott

  • Newbie
  • Beiträge: 14
Abfrage gruppiert nach Wochen, Jahre in den Feldern
« am: Oktober 04, 2018, 15:19:59 »
Hallo Wissende,

auf Arbeit betreue ich eine Datenbank, in der seit 2013 verschiedene Standorte von verschiedenen Werten täglich ihre Zählergebnisse eintragen. Jeder gezählte Wert ist ein Datensatz, die Tabelle "Eingänge" besteht aus den Feldern Datum, Standort, Kategorie und Wert. Das nur als kurze Erklärung, weil diese Werte aus dem SQL-Schnipsel unten hervorgehen. Standort und Kategorie schränken die Auswertung nur auf die gewünschten Daten ein, sind aber sonst nicht relevant. Ebenso findet ihr in dem SQL eine Funktion KW. Diese liefert die Kalenderwoche des übergebenen Datums als String im Format WW/JJJJ zurück. Auch das nur zum Verständnis.

Weil die Mengen immer saisonabhängig (wochenweise) steigen, möchte ich eine Abfrage machen, in der die Zeilen die Wochennummer repräsentieren und die Felder die Jahre, etwa so

Woche         2016     2017      2018
01             340       350       360
02             444       454       464


und so weiter. Die Zahlen sollen jeweils die Durchschnittswerte der Woche sein. Besonderheit ist noch, dass eine Woche erst dann genannt wird, wenn sie abgeschlossen ist, also aktuell wäre es


Woche         2016     2017      2018
...
39             540       550       560
40             644       654       


denn die 40. KW läuft ja noch.

Das Thema mit Anzeige der vollen Wochen habe ich sogar hinbekommen (vielleicht nicht ganz elegant).
Aber als Access-Anfänger komme ich nicht damit klar, wie ich die SELECT-Anweisung so schreibe, dass das Gewünschte dabei rauskommt. Soweit bin ich:

SELECT
Wochenwerte.Wochennummer AS Wochennummer,
MAX(Wochenwerte.Jahr) AS Test
FROM
(
SELECT
KW([Eingänge.Datum]) AS Kalenderwoche,
RIGHT(Kalenderwoche,4)*15+LEFT(Kalenderwoche,2) AS EingangWochennummer,
YEAR(DATE())*15+LEFT(KW(DATE()),2) AS TagesdatumWochennummer,
IIF(EingangWochennummer<TagesdatumWochennummer,0,1) AS AbgeschlosseneWoche,
LEFT(KW([Eingänge.Datum]),2) AS Wochennummer,
RIGHT(KW([Eingänge.Datum]),4) AS Jahr,
ROUND(AVG([Eingänge.Wert]),0) AS Schnitt,
SUM([Eingänge.Wert]) AS Summe
FROM
Eingänge
WHERE
[Eingänge.Kategorie]=1 AND [Eingänge.Standort]<3
GROUP BY
KW([Eingänge.Datum])
) AS Wochenwerte
GROUP BY
Wochenwerte.Wochennummer,
Wochenwerte.AbgeschlosseneWoche
HAVING
SUM(Wochenwerte.AbgeschlosseneWoche) = 0
ORDER BY
Wochenwerte.Wochennummer
;

Meine Probleme nun:
1.) Wie schreibe ich die SELECT, um als Felder die Jahre "aktuell-2", "aktuell-1" und "aktuell" zu bekommen?
2.) Genau genommen soll jedes der genannte Jahre zwei Felder haben, und zwar zum einen den Durschnitt der entsprechenden Woche, und zum anderen die Summen, und zwar kumuliert vom Anfang des Jahres. Auch da weiß ich momentan nicht, wie man es hinbekommt, die Zeilen aufzuaddieren.

Vielen Dank im voraus, viele Grüße!

Hans-Jürgen
« Letzte Änderung: Oktober 04, 2018, 15:57:34 von hajott »
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23512
Re: Abfrage gruppiert nach Wochen, Jahre in den Feldern
« Antwort #1 am: Oktober 05, 2018, 19:48:07 »
Hallo,

schau mal beim Abfrageentwurfsassistenten unter "Kreuztabelle" nach..

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1432
Re: Abfrage gruppiert nach Wochen, Jahre in den Feldern
« Antwort #2 am: Oktober 06, 2018, 14:31:26 »
... und damit die Abfragen nicht einschlafen, würde ich Dir anraten, eine Dimensionstabelle für die Daten anzulegen. Das erspart dann in den Zielabfragen langsame Funktionen zur Ermittlung von KW und Jahr je Datensatz ausführen zu müssen.

Wenn Du im Beispiel die beiden Makros ausführst, werden die Tabellen mit Spieldaten gefüllt. Das Makro, welches die DateDim-Tabelle jeweils um Daten für ein Jahr eerweitert, musst Du natürlich mehrmals mit unterschiedlichen Jahresdaten ausführen. Du kannst auch im VBA-Direktfenster die Ausrufe vornehmen.

Anschließend kannst Du die beiden Kreuztabellenabfragen oder die Kombination der beiden Kreuztabellenabfragen verwenden.

Ich hoffe, dass das Prinzip verständlich ist.

PS: DateDim kannst Du natürlich auch schlanker - nur auf Deine Bedürfnisse ausgerichtet - anlegen; Erweitungen sind aber auch möglich.
 
Grüße von der (⌒▽⌒)
 

Offline hajott

  • Newbie
  • Beiträge: 14
Re: Abfrage gruppiert nach Wochen, Jahre in den Feldern
« Antwort #3 am: Oktober 10, 2018, 07:40:39 »
Hallo zusammen,

wow, ihr seid klasse!

Die Antworten liegen zwar leicht über meinem Verständnisniveau, aber ich habe sie einem Kollegen gezeigt, der sich etwas besser auskennt (aber für mich auch keine Lösung fand)

Das größere Problem war am Ende nicht die Tabellendarstellung, sondern die Zusatzanforderung, das aufzusummieren.

Vielen Dank, Thema gelöst!

Hans-Jürgen
 

 

Datensatzzähler in einer Abfrage

Begonnen von peterBoard Tabelle/Abfrage

Antworten: 6
Aufrufe: 13903
Letzter Beitrag Juni 16, 2010, 16:32:34
von cyorps
Abfrage für Terminüberschneidungen und visuelle Darstellung

Begonnen von centaurusBoard Tabelle/Abfrage

Antworten: 3
Aufrufe: 6392
Letzter Beitrag Januar 21, 2011, 21:30:14
von cy_one_1
Datenerfassung mit Abfrage

Begonnen von Daniel-GSBoard Tabelle/Abfrage

Antworten: 2
Aufrufe: 5553
Letzter Beitrag Mai 05, 2010, 22:52:18
von oma
SQL Abfrage DELETE rückgängig machen??

Begonnen von hmfmartinBoard Tabelle/Abfrage

Antworten: 1
Aufrufe: 7349
Letzter Beitrag Mai 08, 2010, 19:18:08
von MzKlMu
6 Mio Datensätze bei Abfrage

Begonnen von JohannaBoard Tabelle/Abfrage

Antworten: 11
Aufrufe: 8900
Letzter Beitrag Mai 19, 2010, 12:29:47
von Wurliwurm