Announcement
Collapse
No announcement yet.
Kumulieren nach Jahreswerten
Collapse
X
-
Kumulieren nach Jahreswerten
Hallo zusammen, ich habe in meiner Abfrage folgende Spalten
Eintrittsdatum, Mitglieder_ID
Ich würde gern in einer dritten Spalte die Mitglieder_IDs pro Jahr kumulieren.
Ich habe schon einiges im Netz durchforstet aber irgendwie klappt es nicht so wirklich.
Kumuliert: Summe(DomAnzahl([Mitglieder_ID];"tbl_Mitglieder";Jahr([Eintrittsdatum])<=[Jahr]))
Mit diesem Code gibt er mir die Summe wieder und kumuliert sie dann bei jedem Jahr.
ich freu mich über Hilfe
Lieben dankTags: None
-
Ich vermute mal du willst was anderes. Wenn du einfach auf das vorhanden sein von Zeitstempel prüfst (auch wen du es syntaktisch korrigierst) wird der entsprechende Datensatz ja nie berücksichtigt. Heißt wenn du ein Mitglied von 2004 bis 2007 hattest taucht der dann nie auf auch nicht in den Jahren 2004, 2005 etc. Alle die ausgetreten sind fallen komplett aus der Rechnung das macht keinen Sinn. Eventuell habe ich aber auch nur deine Tabellen Struktur nicht verstanden. Jedes Mitglied hat genau einen Datensatz mit von bis Datum? Also einen Datensatz mit der Aussage 'Ralf war Mitglied von 2003 bis 2017'?
Dann eher so
http://sqlfiddle.com/#!6/0451a/3/0
Diese Lösung geht davon aus das du Mitglieder im Jahr ihres Austritts noch als Mitglied zählst. Also jemand der in 2007 Mitglied wird und auch wieder in 2007 austritt wird für 2007 gezählt.
Oder hat jedes Mitglied einen Datensatz je Jahr? Dann solltest du deine Tabellenstruktur genauer erklären.
-
vielen Dank Ralf,
das hat schon mal super geklappt.
jetzt habe ich das in einer zweiten Abfrage für die Abmeldungen verändert.
Meine nächste Frage ist kann ich AnzahlMitglieder vielleicht schon durch eine weiteres Kriterium eingrenzen. Denn wo es eine Anmeldung gibt, gibt es ja auch eine Abmeldung.
Hier mein Versuch
Code:SELECT Year(Eintrittsdatum) AS Jahr, (SELECT count(*) FROM tbl_Mitglieder AS M2 WHERE Year(M2.Eintrittsdatum) <= Year(M1.Eintrittsdatum)) AS AnzahlMitglieder and Zeitstempel = null FROM tbl_Mitglieder AS M1 GROUP BY Year(Eintrittsdatum) ORDER BY Year(Eintrittsdatum);
Das markiert er mir aber das and und schreibt mir das die select-Anweisung ein reserviertes Wort einschließt.
Leave a comment:
-
In einer richtigen Datenbank etwa so
http://sqlfiddle.com/#!6/2c2ae/8/0
In Access wahrscheinlich eher so (habe kein Access parat)
http://sqlfiddle.com/#!6/0f7fe/1
Leave a comment:
-
Hallo defo,
danke für deinen Beitrag, aber leider bin ich da auch schon angekommen.
Er gibt mir dann aus, wieviele ich Mitglieder_IDs ich dann in dem Jahr habe.
Jahr AnzahlMitglieder
2004 1
2005 1
2006 1
2007 1
2008 1
2009 2
Ich will aber folgendes:
Jahr.............. AnzahlMitglieder.............Kumuliert
2004------------------1------------------------1
2005------------------1------------------------2
2006------------------1------------------------3
2007------------------1------------------------4
2008------------------1------------------------5
2009------------------2------------------------7
da komm ich irgendwie nicht hin....
Danke für eure Hilfe.
lg
Leave a comment:
-
Originally posted by Müllermilch View PostKumuliert: Summe(DomAnzahl([Mitglieder_ID];"tbl_Mitglieder";Jahr([Eintrittsdatum])<=[Jahr]))
AlsoCode:...year(Eintrittsdatum), count(*) from <meine tabelle> group by year(Eintrittsdatum)
Leave a comment:
Leave a comment: