Announcement

Collapse
No announcement yet.

Kumulieren nach Jahreswerten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Müllermilch
    started a topic Kumulieren nach Jahreswerten

    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 dank

  • Ralf Jansen
    replied
    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.

    Leave a comment:


  • Christian Marquardt
    replied
    https://support.office.com/de-de/art...3-3e8c0ea67c61

    Leave a comment:


  • Müllermilch
    replied
    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:


  • Ralf Jansen
    replied
    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:


  • Müllermilch
    replied
    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:


  • defo
    replied
    Originally posted by Müllermilch View Post
    Kumuliert: Summe(DomAnzahl([Mitglieder_ID];"tbl_Mitglieder";Jahr([Eintrittsdatum])<=[Jahr]))
    Ich weiß nicht, was DomAnzahl macht, es dürfte reichen nur Anzahl(*) zu nehmen, gruppiert nach Jahr.
    Also
    Code:
     ...year(Eintrittsdatum), count(*) from <meine tabelle> group by year(Eintrittsdatum)

    Leave a comment:

Working...
X