Hallo liebe Community,
und zwar würde ich gerne wissen ob es überhaupt möglich ist was ich gerade versuche.
Und zwar hab ich in einer Abfrage, mehrere Mitarbeiter, sowie die Daten 01.01.2018 -31.01.2018
Das heißt, es gibt z.B. den 01.01.2018 3 Mal, weil ich 3 Mitarbeiter habe. Dazu gehört auch noch eine 0,.... Zahl.
Datensatz Bsp.
01.01.2018/ Mitarbeiter01/ 0,3
01.01.2018/ Mitarbeiter02/ 0,2
Ich möchte jetzt gerne eine Kreuztabelle erstellen, wo er die kommastellen zahl pro Mitarbeiter Summiert. (kriege ich auch hin) Jedoch würde ich es dann gerne durch die Anzahl der Tage im Monat teilen, dass man sozusagen Summer der Anzahl im Monat / Anzahl der Tage im Monat teilt.
ist dies möglich?
/Januar / Februar....
Mitarbeiter 1 / 0,81 (27,3/31 die Rechnung natürlich nicht sichtbar )
Mitarbeiter 2 / ....
...
die 27,3 wäre die Summe der Kommazahlen von 01.01.2018 + 02.02.2018...+ 31.01.2018
ich bedanke mich jetzt schon einmal für eure Hilfe!
L.G. Paul
Hallo!
Wenn ich dich richtig verstehe, hast du in der Tabelle aber nicht jeden Tag enthalten.
2 Möglichkeiten:
1.) Du verwendest eine Hilfstabelle, in der du die Anzahl der Tage je Monat ablegst und verknüpfst diese in der Datenquelle der Pivot-Abfrage.
Prinzip:
select
T.*, M.AnzahlTage
from
DeineDatenTabelle T
inner join
Monatstabelle M ON M.Monat = Month(T.Datumsfeld)
Falls Schaltjahre zu beachten sind: Monatdaten zu jeweiligen Jahr verwenden.
In der Pivottabelle dann zusätzlich nach dem Feld AnzahlTage gruppieren und den Werte mit Sum(WertFeld) / AnzahlTage berechnen.
Anm.: statt der Hilfstabelle wäre auch eine Berechnung der Tage möglich.
Datediff("d", dateserial(Year(Datumsfeld), Month(Datumsfeld), 1), dateserial(Year(Datumsfeld), Month(Datumsfeld) + 1, 1))
2.) Oder du verwendest eine Kalendertabelle um alle Tage in der Pivot-Abfrage zu haben.
Prinzip:
Datenquelle für Pivot-Auswertung:
select
MK.KalenderDatum, MK.MitarbeiterID, T.WertFeld
from
(
select
K.KalenderDatum
M.MitarbeiterID
from
Kalendertabelle K,
Mitarbeitertabelle M
where
K.KalenderDatum between #2018-01-01# and #2018-12-31#
) MK
left join
DeineDatenTabelle T ON T.Datumsfeld = MK.KalenderDatum and T.MitarbeiterID = MK.MitarbeiterID
Wenn du mit dieser Datenquelle eine Pivot-Abfrage erstellst, ist jeder Tag enthalten. Das sind zwar viel mehr Datensätze, dafür kannst du auch nach Quartal, Woche usw. auswerten.
Du kannst somit Sum(WertFeld) / Count(*) rechnen um den Durchschnittssatz zu erhalten.
Tipp: wenn du bereits in der Kalendertabelle Jahr und Monat als redundaten Wert verfügbar hast, musst du später in der Pivot-Abfrage nichts mehr rechnen und kannst direkt nach diesen Feldern gruppieren.
mfg
Josef
@josepf, habe es mit einer Hilfstabelle gemacht, da Feiertage und Wochenenden für jeden Monat rausgerechnet werden mussten, weshalb man nicht Pauschal mit einem Monat rechnen konnte.
Vielen Dank für deine schnelle und passende Antworrt !