none
Säulendiagramm nach Monaten mit Abbildung der Rechnungsbeträge der letzten 24 Monate RRS feed

  • Frage

  • Hallo zusammen,

    irgendwie habe ich einen Hänger:

    Ich möchte aus einer Liste von Einzelrechnungen (Rechnungsdatum, Rechnungsbetrag) der letzten 24 Monate ein Säulendiagramm erzeugen welches mir je Monat die entsprechenden Rechnungsbeträge (falls welche in jenem Monat anfielen) zusammenfasst und als eine Säule ausgibt, dabei aber auch Monate berücksichtigt in denen keine Rechnungen anfielen, hier soll dann einfach ein Null als Säule dargestellt werden, es soll also der Monat auf der x-Aches auf jeden Fall mit angedruckt werden!

    Muss ich bereits im Dataset nach Monaten gruppieren (wie bekomme ich dann die "leeren" Monate dort mit hinein?), oder geht das eleganter direkt im Diagramm-Element?

    Ich bin schon mal für jeden Tipp dankbar!

    Viele Grüße

    Marcus


    Mittwoch, 16. Mai 2018 07:45

Antworten

  • Hallo zusammen,

    erstmal vielen Dank an Christoph und 'bfuerchau' für Ihre Beiträge!

    Ich habe es nach etwas probieren auch ohne eine zusätzliche Kalendertabelle oder Gruppieren vorab im Dataset nach Monaten gelöst bekommen, indem ich im Säulendiagramm folgendes eingetragen habe:

    • bei den REIHENEIGENSCHAFTEN unter WERTEFELD: =Sum(Fields!Betrag.Value)
    • bei den REIHENEIGENSCHAFTEN unter KATEGOERIENFELD: =year(Fields!Datum.Value)&"/"&month(Fields!Datum.Value)
    • bei den KATEGORIEGRUPPENEIGENSCHAFTEN unter BEZEICHNUNG: =year(Fields!Datum.Value)&"/"&month(Fields!Datum.Value)
    • bei den KATEGORIEGRUPPENEIGENSCHAFTEN unter GRUPPIEREN NACH: =year(Fields!Datum.Value)&"/"&month(Fields!Datum.Value)
    • bei den EIGENSCHAFTEN FÜR HORIZONTALE ACHSEN den Typ SKALAR ausgewählt, mit Intervall 1 und Intervalltyp Monat, als MIN/MAX entweder fixe Werte mit =cdate("01.01.2017") bzw. =cdate("31.12.2018") oder variabel für die letzten 24 Monate mit =DateAdd("m",-24,today()) bzw. =Today()

    Der Rest ist dann "Chromleiste", z.B. das Formatieren der X-Achsenbeschriftung mit MMM.yy o.ä. ... :-)

    Mir ist klar dass das nur geht solange ich Datumswerte/Zeitwerte auf die X-Achse projezieren will, wenn ich das z.B. mit allen 10 Vertriebsleuten machen will, von denen 2 keine Umsätze haben, muss ich das schon im Dataset regeln (per UNION für jeden der 10 eine Dummy-Rechnung über 0 EUR beifügen)

    Schönen Feierabend!

    Marcus




    Donnerstag, 17. Mai 2018 15:49

Alle Antworten

  • A) benötigst du eine Kalendertabelle, die alle benötigten Monate enthält.
    b) musst du die Monate der Rechnungen bereits gruppieren und die Beträge summieren
    C) verknüpfst du nun die Monatstabelle mit dem Ergebnis der Gruppierung über die Monate
    Mittwoch, 16. Mai 2018 07:52
  • C) musst Du als LEFT OUTER JOIN realisieren, damit alle Monate aus der Monatstabelle kommen und falls vorhanden die Daten aus der Rechnungstabelle dazu kommen. Mit COALESCE kannst Du dann die NULL-Werte in 0 ändern.

    Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu

    Mittwoch, 16. Mai 2018 09:11
  • Hallo zusammen,

    erstmal vielen Dank an Christoph und 'bfuerchau' für Ihre Beiträge!

    Ich habe es nach etwas probieren auch ohne eine zusätzliche Kalendertabelle oder Gruppieren vorab im Dataset nach Monaten gelöst bekommen, indem ich im Säulendiagramm folgendes eingetragen habe:

    • bei den REIHENEIGENSCHAFTEN unter WERTEFELD: =Sum(Fields!Betrag.Value)
    • bei den REIHENEIGENSCHAFTEN unter KATEGOERIENFELD: =year(Fields!Datum.Value)&"/"&month(Fields!Datum.Value)
    • bei den KATEGORIEGRUPPENEIGENSCHAFTEN unter BEZEICHNUNG: =year(Fields!Datum.Value)&"/"&month(Fields!Datum.Value)
    • bei den KATEGORIEGRUPPENEIGENSCHAFTEN unter GRUPPIEREN NACH: =year(Fields!Datum.Value)&"/"&month(Fields!Datum.Value)
    • bei den EIGENSCHAFTEN FÜR HORIZONTALE ACHSEN den Typ SKALAR ausgewählt, mit Intervall 1 und Intervalltyp Monat, als MIN/MAX entweder fixe Werte mit =cdate("01.01.2017") bzw. =cdate("31.12.2018") oder variabel für die letzten 24 Monate mit =DateAdd("m",-24,today()) bzw. =Today()

    Der Rest ist dann "Chromleiste", z.B. das Formatieren der X-Achsenbeschriftung mit MMM.yy o.ä. ... :-)

    Mir ist klar dass das nur geht solange ich Datumswerte/Zeitwerte auf die X-Achse projezieren will, wenn ich das z.B. mit allen 10 Vertriebsleuten machen will, von denen 2 keine Umsätze haben, muss ich das schon im Dataset regeln (per UNION für jeden der 10 eine Dummy-Rechnung über 0 EUR beifügen)

    Schönen Feierabend!

    Marcus




    Donnerstag, 17. Mai 2018 15:49