none
Diagramm im Berichtsgenerator RRS feed

  • Frage

  • Hallo zusammen,

    ich habe eine ziemlich knifflige Aufgabe bekommen, bei welcher ich nicht weiterkomme:

    Ich habe eine Tabelle, in welcher die Datensätze einer Abteilung stehen. (Anfrage, welches Team hat diese bearbeitet, wann wurde sie bearbeitet.)

    Nun soll ich ein Diagramm (Vorzugsweise mit dem Berichtsgenerator) erstellen, welches mir die Durchschnittliche Anzahl der Anfragen pro Mitarbeiter pro Team in jedem Monat darstellt. (Problem ist, dass es eine unterschiedliche Anzahl Mitarbeiter pro Team sind)

    Diagramm, in welchem pro Team eine Linie mit der Durchschnittsanzahl angezeigt wird.

    x-Achse: Monate

    y-Achse: Durchschnittliche Anzahl Anfragen pro MA pro Team

    Aktuell habe ich folgendes versucht:

    dataset:

    SELECT DATENAME(MONTH,Erstellt_am) AS 'Monat', count(*) as 'Anzahl', DATEPART(MONTH,Erstellt_am) as 'datenumber', Team
    FROM Ticketuebersicht_komplett
    GROUP BY DATENAME(MONTH,Erstellt_am), DATEPART(MONTH,Erstellt_am), Team
    order by Team, DATEPART(MONTH,Erstellt_am)

    Diagramm:

    Werte: Anzahl, Sum (Anzahl)

    Kategorie: Monat

    Reihengruppe: Team

    Ich kriege aber die unterschiedlichen Variablen der "Anzahl MA Team a", "Anzahl MA Team b",... nicht mit rein.

    Hat jemand eine Idee?

    Danke und Gruß

    Timo

    Mittwoch, 10. Juli 2013 09:07

Antworten

  • Hallo Timo,

    ich habe mir mal ein Beispiel gebastelt:

    Declare @Ticketuebersicht_komplett as Table(Erstellt_am datetime, Team varchar(5), Mitarbeiter int);
    
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 1, '20130101 10:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 1, '20130101 10:15:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 1, '20130102 11:15:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 2, '20130111 11:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 3, '20130112 12:00:00');
    
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 1, '20130201 10:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 2, '20130211 11:00:00');
    											 										
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 1, '20130101 08:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 1, '20130110 08:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 1, '20130111 08:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130102 10:00:00');
    
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130201 10:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130201 11:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130201 12:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130201 13:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 3, '20130207 07:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130301 10:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 3, '20130307 07:00:00');
    
    With Vorbereitung as
    (
    SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, Erstellt_am), 0) as Monat,  Team, Mitarbeiter
     FROM @Ticketuebersicht_komplett
    )
    Select Monat, Team, count(distinct Mitarbeiter) as Mitarbeiter_Monat, count(*) as Call_Anzahl, count(*) * 1.0 / count(distinct Mitarbeiter) as Team_Durchschnitt_Monat
    from Vorbereitung
    group by Monat, Team
    order by Monat, Team;
    

    Damit erhälst Du bereits aus dem SQL die notwendigen Zahlen für die Grafik.

    Dort verwende ich dann Team_Durchschnitt_Monat für die Werte, Monat für die Kategoriegruppen und Team für die Reihengruppen.

    Der Trick mit dem Datum dampft die Daten auf den ersten des Monats ein und erleichtert die Gruppierung.

    HTH!


    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - Blog

    • Als Antwort markiert TimoB_ Mittwoch, 10. Juli 2013 13:15
    Mittwoch, 10. Juli 2013 12:30
    Beantworter

Alle Antworten

  • Hallo Timo,

    woher soll das SQL wissen, wieviele MA in jedem Team sind?

    Gibt es da eine Tabelle, oder willst Du die distinkten MA pro Team und Monat zählen?


    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - Blog

    Mittwoch, 10. Juli 2013 09:58
    Beantworter
  • Hallo Christoph,

    ich würde das als Variablen übergeben. Aber wenn es einfacher ist könnte man die auch zählen. Sind auch in der Tabelle als Spalte mit drin.

    Mittwoch, 10. Juli 2013 10:31
  • Hallo Timo,

    ich habe mir mal ein Beispiel gebastelt:

    Declare @Ticketuebersicht_komplett as Table(Erstellt_am datetime, Team varchar(5), Mitarbeiter int);
    
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 1, '20130101 10:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 1, '20130101 10:15:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 1, '20130102 11:15:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 2, '20130111 11:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 3, '20130112 12:00:00');
    
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 1, '20130201 10:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('A', 2, '20130211 11:00:00');
    											 										
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 1, '20130101 08:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 1, '20130110 08:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 1, '20130111 08:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130102 10:00:00');
    
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130201 10:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130201 11:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130201 12:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130201 13:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 3, '20130207 07:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 2, '20130301 10:00:00');
    insert into @Ticketuebersicht_komplett(Team, Mitarbeiter, Erstellt_am) values ('B', 3, '20130307 07:00:00');
    
    With Vorbereitung as
    (
    SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, Erstellt_am), 0) as Monat,  Team, Mitarbeiter
     FROM @Ticketuebersicht_komplett
    )
    Select Monat, Team, count(distinct Mitarbeiter) as Mitarbeiter_Monat, count(*) as Call_Anzahl, count(*) * 1.0 / count(distinct Mitarbeiter) as Team_Durchschnitt_Monat
    from Vorbereitung
    group by Monat, Team
    order by Monat, Team;
    

    Damit erhälst Du bereits aus dem SQL die notwendigen Zahlen für die Grafik.

    Dort verwende ich dann Team_Durchschnitt_Monat für die Werte, Monat für die Kategoriegruppen und Team für die Reihengruppen.

    Der Trick mit dem Datum dampft die Daten auf den ersten des Monats ein und erleichtert die Gruppierung.

    HTH!


    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - Blog

    • Als Antwort markiert TimoB_ Mittwoch, 10. Juli 2013 13:15
    Mittwoch, 10. Juli 2013 12:30
    Beantworter
  • Super. Danke. Funktioniert hervorragend.

    Hab noch datepart und datename hinzugefügt, dass auch der Monatsname angezeigt wird.

    Gruß

    Timo

    Mittwoch, 10. Juli 2013 13:16