Hallo liebe Forumsmitglieder,
ich bin schon sehr gespannt was Euch zu meinem Problem einfällt.
Ich benutze Access 2007.
Hier die Kurzbeschreibung:
Ich möchte Erlöse jahresgleich bzw. monatsgleich verteilen. Ich habe einen Gesamterlös für ein Projekt, das läuft in der Regel über mehrere Jahre, kann aber auch in einem Jahr beginnen und enden. Die einzelnen Projekte sind über OE und Projektnummer zugeordnet, man muss immer beide berücksichtigen da Projekte auch mehreren OEs zugeordnet sein können (hier muss der Erlösanteil pro Projekt anteilig berechnet werden, einen Faktor bzgl. des Anteils gibt es).
Beginn- und Endedatum habe ich natürlich auch, wie schaffe ich es dass innerhalb der Projektlaufzeit der Erlös monatsgenau ausgegeben wird mit dem richtigen Anteil? Also ich stelle mir eine Tabelle vor, wo die Projekterlöse monatsgenau aufgelistet sind, und dann entweder der anteilige Erlös (lineare Verteilung) ausgegeben wird (Monate innerhalb der Laufzeit), und für Monate außerhalb der Laufzeit eine Null.
In Excel musste ich mir da auch einen abbiegen, um das hin zu kriegen. Ich will aber net immer Daten importieren, sondern hätte gern dass Access das selber macht. Dann könnte ich über ein Formular neue Projekte erfassen und dann die Auswertung starten.
Ach ja, Fragen über Fragen -
ich hoffe sehr dass es eine Antwort gibt!!
Viele Grüße Tomate
Aus Beginn- und Endedatum kann man eine Differenz (in Monaten, Jahren usw.) ermitteln und den Erlös durch diese Differenz teilen. Damit hat man eine lineare Verteilung - ohne Excel oder Access würde man das auch so machen. Das ist auch keine höhere Mathematik.
Über nicht spezifizierte Punkte
- zählt Beginnmonat/-jahr als voll oder anteilig. Welche Rechenvorschriften ergeben sich daraus?
- wie geht man mit Rundungsdifferenzen, die sich beim Teilen immer ergeben können, um?
- welche Rolle spielen Projektnummer und OE (muss man wissen, was das ist)?
muss man sich ja keine Gedanken machen. Im Zweifelsfall bzw. im Wahlfall sind das keine zu lösenden Probleme.
MfGA
ebs
ZitatAus Beginn- und Endedatum kann man eine Differenz (in Monaten, Jahren usw.) ermitteln und den Erlös durch diese Differenz teilen. Damit hat man eine lineare Verteilung - ohne Excel oder Access würde man das auch so machen. Das ist auch keine höhere Mathemat
-> na das weiss ich auch, das ist einfach. Das Problem besteht eher darin, den so ermittelten Monatserlös innerhalb der Projektlaufzeit zu zuordnen.
Zitat- zählt Beginnmonat/-jahr als voll oder anteilig. Welche Rechenvorschriften ergeben sich daraus?
-> Projektbeginn in Monat X (angefangener Monat zählt voll), Jahr anteilig ab dem Beginnmonat
Zitat- wie geht man mit Rundungsdifferenzen, die sich beim Teilen immer ergeben können, um?
-> Ist nicht mein größtes Problem, wenn die Monatsverteilung klappt dann wäre das schon mal was.
Zitat- welche Rolle spielen Projektnummer und OE (muss man wissen, was das ist)?
-> wie ich schon geschrieben hab, der Datensatz ist nur eindeutig definiert mit Projektnummer und OE (Organisationseinheit-Nummer).
Hoffe das verdeutlicht jetzt das Problem-
Danke Sabine Tomate
Also geht es darum, die Verteilung z.B. auf die Monate darzustellen. Das kann man regelmäßig mit einer Hilfstabelle realisieren.
Ich vereinfache mal und lege fest, dass Monate, Beginn und Ende jeweils als Monatserste dargestellt werden (Datentyp DateTime). Die Hilfstabelle enthält alle Monatsersten fortlaufend in einem ausreichenden Wertebereich.
Dann sollte man mit folgendem Ansatz ein deutliches Stück vorankommen:
SELECT HP.HMonat,
T.PN ,
T.OE ,
T.Erloes / (DATEDIFF('m', T.Beginn, T.Ende) + 1) AS mtlErloes
FROM (SELECT H.HMonat,
P.PN ,
P.OE
FROM (SELECT HMonat
FROM Hilfstabelle
)
AS H ,
(SELECT DISTINCT PN,
OE
FROM tblProjekte
)
AS P
)
AS HP
INNER JOIN tblProjekte AS T
ON HP.PN = T.PN
AND HP.OE = T.OE
WHERE HP.HMonat BETWEEN T.Beginn AND T.Ende
MfGA
ebs