bei der Gestaltung einer Abfrage fehlt mir igendwie di zündende Idee, daher mal meine Frage ans Forum:
Ich habe 4 Datumsfelder A, B, C, D
In Feld A steht immer ein Datum, welches immer älter als B, C und D ist.
In den Felder B, C und D steht in mindestens einem ein Datum, es kann aber auch in allen dreien ein (jeweils unterschiedliches) Datum stehen.
Ich möchte nun die Anzahl der Tage aus B-A, C-A, D-A berechnen und mir den Durchschnitt der Tage aller ausgewerteten Datensätze ausgeben lassen.
Problem ist, dass er bei der Berechnung des Durchshnittswertes nur den niedrigesten Zeitraum nehmen soll.
Bsp.
Datensatz 1
A = 01.01.2015
B = 02.01.2015
C = 03.01.2015
D = 04.01.2015
Datensatz 2
A = 01.01.2015
B = NULL
C = NULL
D = 06.01.2015
Berechnung:
Datensatz 1
B - A = 1 Tag
C - A = 2 Tage
D - A = 3 Tage
Datensatz 2
B - A = NULL
C - A = NULL
D - A = 5 Tage
Durchschnittsbildung: bei Datensatz 1 ist 1 Tag der günstigste Wert, bei Datensatz 2 sind 5 Tage der günstigste Wert, also (1+5)/2 = durchschnittlich 3 Tage -> da möchte ich hin
den ersten Schritt (der Berechnung der Differenztage) kann die Datediff-Funktion (in einer Abfrage) leisten.
Den zweiten Schritt (Durchschnittswerte) habe ich nicht ganz begriffen („günstigster Wert“). Vermutlich kann aber auf Basis der o. g. Abfrage eine weitere aufgesetzt werden, die die AVG (Mittelwert) -Domainen-Funktion zur Berechnung verwendet.
Mit „günstigster Wert“ ist gemeint, dass er pro Datensatz nur den niedrigsten Wert zur Durchschnittsberechnung heranziehen soll. Das ist auch mein eigentliches Problem, also in der Berechnung nur diesen einen Wert pro Datensatz heranzuziehen anstatt alle möglichen Werte pro Datensatz.
im Grunde ist die Tabellenstruktur falsch/nicht geeignet.
Um den niedrigsten Wert aus einer Liste von Werten („horizontale“ Felder) heraus zu bekommen, ist eine eigengeschriebene VBA-Funktion erforderlich, die eben aus allen Feldwerten eines DS den niedrigsten heraussucht (berechnet) und zurück liefert.