Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Nutzungsgrad berechnen, Slicer funktioniert nicht richtig

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von ChrisKoch, 1 April 2014.

  1. ChrisKoch

    ChrisKoch Neuer Benutzer

    Hey,

    das ist meine zweite Frage hier in dem Forum und langsam denke ich ich bin doof :)

    Ich habe eine Datenbank mit Zählerständen für Drucker.

    Diese werden Tag für Tag (bzw. 3x am Tag) abgerufen und immer aufsummiert.

    Beispiel:

    GeräteId | Zählerstand |Zählerzeit
    1| 2005| 01.03.2014 09:10:00
    1|2010 | 02.03.2014 09:10:00
    2 | 123 | 01.03.2014 09:10:00

    usw...


    was möchte ich tun? Den Nutzungsgrad (Ist/SOLL) berechnen.

    Es gibt eine Tabelle, in der ein Zählernennvolumen angegeben ist. Bspw. 10000 Seiten/Monat. Ein Drucker steht an einem Standort, an einer Kostenstelle.

    Ich habe nun alle Drucker importiert mit zugewiesenem Standort, KOstenstelle, Zählern, Datum usw.

    Tabelle sieht so aus:

    Code:
    GeräteId| Standortnummer| Kostenstelle |Modellbezeichnung| Geräteinstallationsdatum| DruckerIP |SeitenProMonat_Nennwert |Zähler| Zählerdatum| AlterdesGerätsInMonaten|SeitenProMonat_Nennwert_mal_AlterinMonaten|Jahr|Monat
    3283 |006| XXX-XXXXX | Lexmark XY| 31.05.2012 00:00:00| 10416| xx.xx.xx.xx |13210| 03.03.2014 00:00:00| 22| 229152| 2014| 03
    

    Im Bild "test.png" ist zu sehen der Zählerstand nach kostenstelle, darunter als feinere Ebene der Drucker und da sind die Zählerstände nach dem Monat gegliedert.

    Rechnet man nun die gesamten Zählerstände der Drucker zusammen, ergibt die Summe nicht den Wert, der bei der Kostenstelle steht.

    Folgenderweise bin ich vorgegangen:

    Ich habe den Min und Max Zählerwert ermittelt in Measures:

    Code:
    MaxZähler:=CALCULATE(MAX(Abfrage[Zähler);ALL(Abfrage[PrinterIp]))
    MinZähler:=CALCULATE(MIN(Abfrage[Zähler]);ALL(Abfrage[PrinterIp]))
    
    Dabei soll das jeweilige Maximum abhängig von Printer und vom Datum (Monat) rauskommen. Ich weiß, dass die DAX Formel falsch ist, weiß aber nicht wie es richtig sein sollte :/

    Dann habe ich ein Measure, in dem ich MaxZähler-MinZähler rechne, dadurch habe ich den MOnatlichen Verbrauch.

    Als Nennwert hat jede Druckerart verschiedene Zahlen. Lexmark 10000 Samsung 5000 wie auch immer.

    Code:
    Test2:=CALCULATE(MAX(Abfrage[PagesPerMonth]);Abfrage[Id])
    Es gibt bei diesem Measure vier Perspektiven:
    - EIN Monat + EIn Drucker
    - EIN Monat + Mehrere Drucker
    - Mehrere Monate + Mehrere Drucker
    - Mehrere Monate + 1 Drucker

    Die Werte sollen ebenfalls richtig aufsummiert werden, um auf der nächsthöheren Ebene (bei 5 Druckern mit 1x 2000 seiten, 1x 10000 und 3x 5000 seiten auf einer Kostenstelle in einem Monat den Nennwert 27000 stehen zu haben.

    Kurz gesagt habe ich folgende Probleme:

    - eine allgemeine Formel zu finden, die die Variablen Anzahl der Monate, Anzahl der Drucker und individuelle Nennzählerstände berücksichtigt.
    - Diese, aber auch die Zählerstände sollen pro Kostenstelle bzw. Standort richtig aufsummiert werden, das klappt aktuell nicht.

    Ich denke, dass es nicht funktioniert, weil ich Zählerstand MAX minus Zählerstand MIN rechne und auf der Kostenstellenebene wird nicht die Seitenzahl /Monat, sondern die Differenz zwischen MAX und MIN Wert auf Kostenstellenebene berechnet. die meistens zwischen 0 bei einem kleinen, evtl. jungen Drucker und 1.000.000 bei einem alten großen Drucker liegt. Dadurch ergibt sich ein Gesamtzähler von 1.000.000, was, wenn die einzelnen MOnatswerte der Drucker aufsummiert werden, nicht stimmt.


    Ich hoffe ihr könnt mir helfen, danke!

    LG Christian
     
  2. ukulele

    ukulele Datenbank-Guru

    Ganz erlich, ich verstehe nicht was du da tust bzw. was du eigentlich tun willst.

    Was ich verstehe:
    Du hast 2 Tabellen. Ich nenne die erste einfach mal "zaehlerstaende" und du gibst hier 3 Beispiel-Datensätze. Wenn ich dich aber richtig verstehe gibt es mehrere pro Tag.
    Code:
    GeräteId | Zählerstand | Zählerzeit
    1 | 2005 | 01.03.2014 09:10:00
    1 | 2010 | 02.03.2014 09:10:00
    2 | 123 | 01.03.2014 09:10:00
    In deiner zweiten Tabelle, ich nenne sie mal "drucker", ist schonmal irgendwas durcheinandergekommen mit den Beispieldaten. Ich hab das mal aufgedröselt:
    Code:
    GeräteId                                    3283
    Standortnummer                                006
    Kostenstelle                                XXX-XXXXX
    Modellbezeichnung                            Lexmark XY
    Geräteinstallationsdatum                    31.05.2012 00:00:00
                                                10416
    DruckerIP                                    xx.xx.xx.xx
    SeitenProMonat_Nennwert                        13210
    Zähler                                     
    Zählerdatum                                    03.03.2014 00:00:00
    AlterdesGerätsInMonaten                        22
    SeitenProMonat_Nennwert_mal_AlterinMonaten    229152
    Jahr                                        2014
    Monat                                        03
    Wenn ich jetzt richtig liege, passt im Moment deine Berechnung der gedruckten Seiten pro Monat nicht. Berechnest du das mit SQL im Select oder was sind das für Code Schnipsel? Warum nutzt du nicht einen Select auf drucker mit Join auf zaehlerstaende als Sicht sondern schreibst die Zählerstände in die Druckertabelle?
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden