Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Michael Wulf am September 01, 2014, 22:10:24

Titel: Mehrjahresvergleich
Beitrag von: Michael Wulf am September 01, 2014, 22:10:24
Guten Tag zusammen,

Ich möchte eine Datenbank programmieren, die folgende Tabellen enthält:

Tabelle1
firmennameID
Firmenname

tabelle2
ID (primär)
FirmennameID (Verknüpfung)
Jahr
Umsatz
Wareneinsatz
Rohertrag
Gewinn

Nun möchte ich folgendes berechnen:

Ich erfasse für die Firma A die Jahre 1 bis 3 jeweils mit Umsatz, Wareneinsatz und Gewinn. Nun möchte ich die drei Jahre vergleichen (jeweils zum Vorjahr) und Berechnungen durchführen

A: Veränderung Umsatz zum Vorjahr in %
B: Verhältnis Gewinn zu Umsatz in %
C: Umsatz - Wareneinsatz (entspricht Rohertrag) in EUR und Ergebnis in %

Erstelle ich dazu einen Bericht oder Abfrage? Muss ich ggf. Weitere Felder für die % Werte in der Tabelle erstellen? Wie berechne ich Werte aus verschiedenen Datensatzsätzen insbesondere wenn das Gleiche für Unternehmen B etc. Erfolgen soll ?

Vielen Dank für Tips und Anregungen.
Michael 
Titel: Re: Mehrjahresvergleich
Beitrag von: MaggieMay am September 04, 2014, 11:41:37
Hallo,

mein Vorschlag wäre, die Datensätze mit Hilfe einer Union-Abfrage zusammenzuführen.
Beispiel:Select FirmennameID, Jahr As J1, Umsatz As U1, Wareneinsatz As W1, Gewinn AS G1, Null As J2, Null As U2, Null As W2, Null As G2, Null As J3, Null As U3, Null As W3, Null As G3
From tabelle2
Where Jahr = 2011
UNION
Select FirmennameID, Null, Null, Null, Null, Jahr, Umsatz, Wareneinsatz, Gewinn, Null, Null, Null, Null
From tabelle2
Where Jahr = 2012
UNION
Select FirmennameID, Null, Null, Null, Null, Null, Null, Null, Null, Jahr, Umsatz, Wareneinsatz, Gewinn
From tabelle2
Where Jahr = 2013
und folgendermaßen zusammenzufassen:Select FirmennameID, Max(J1) As Jahr1, Max(U1) As Umsatz1, Max(W1) As Wareneinsatz1, Max(G1) As Gewinn1, Max(J2) As ..., Max(U2), Max(W2), Max(G2), Max(J3), Max(U3), Max(W3), Max(G3)
From abf_uni
Group By FirmennameID
Die Vergabe sinnvoller Aliasnamen für die berechneten Felder sollte dabei noch auf alle Felder erweitert werden.
Titel: Re: Mehrjahresvergleich
Beitrag von: Walter P. am September 04, 2014, 15:16:08
Hallo,

und wenn Du das Basisjahr in einer weiteren Tabelle auslagerst brauchst Du im nächsten Jahr den Code nicht zu ändern.
z.B. 2013 könnte dann Basisjahr - 1 sein.

Gruß
Titel: Re: Mehrjahresvergleich
Beitrag von: MaggieMay am September 04, 2014, 15:18:43
Um den Code variabel zu halten, könnte man auch das Tagesdatum einsetzen, bspw. so:Where Jahr = Year(Date()) -3
Titel: Re: Mehrjahresvergleich
Beitrag von: Walter P. am September 04, 2014, 15:35:43
Hallo MaggieMay,

im Prinzip gebe ich Dir Recht wenn Du nur für Dich selbst arbeitest.
Aber Tipp aus der Praxis: In einer Firma haben Kollegen und vor allem Chefs die abenteuerlichsten Ideen und wünschen sich schon mal Auswertungen für Zeiträume die weiter zurückliegen (oft genug erlebt).
Schwierig wird es auch um den Jahreswechsel herum.

Gruß
Titel: Re: Mehrjahresvergleich
Beitrag von: MaggieMay am September 04, 2014, 16:03:56
OK, jetzt ist der Groschen gefallen. Du gehst davon aus, dass das Basisjahr zum Zweck der Auswertung vorher beliebig festgelegt werden kann - stimmt's?
Titel: Re: Mehrjahresvergleich
Beitrag von: Walter P. am September 04, 2014, 16:16:11
Hallo,

genau.
Das Feld kann dann auch noch für weitere Auswertungen genutzt werden. Die Möglichkeiten sind dann vielfältig.

Gruß