Berechnung - brauch mal wieder einen Denkanstoss
Moses
- php
Hallo,
arbeite mit PHP und MySql.
Für eine statistische Auswertung habe ich eine Datenbankabfrage, die mir Monat, Jahr, und Summe der Umsätze des jeweiligen Monats zurückgibt.
Nun möchte ich aber diese Werte nicht nur für den jeweiligen Monat anzeigen lassen, sondern auch weiterverarbeiten und als "Quartalswerte" anzeigen lassen.
Und hier steh ich momentan etwas auf dem Schlauch.
Kann mir jemand einen Hinweis geben wie man so etwas am besten lösen kann.
Es sollen also alle Werte Jan 2003, Februar 2003, März 2003 addiert werden für QUartal 1 2003, dann April 03, Mai 03, Juni 03 für Quartal 2 2003, etc. Jan 04, feb 04, märz 04 für Quartal 1 04 etc.
Ein weiteres Problem, daß eine einfache Lösung ala addiere immer drei Werte ausschließt, ist, daß wenn es für einen Monat keine Umsätze gibt, wird dieser Monat auch nicht von der Abfrage zurück gegeben. (es kann also passieren, daß plötzlich der Februar in einem Jahr "fehlt" - sprich bei addiere immer drei Werte würden dann Jan, März und April des entsprechenden Jahres addiert, und alle folgenden Quartale wären falsch)
Hoffe ich habe mich einigermaßen verständlich ausgedrückt, und hoffe noch mehr, daß mir jemand helfen kann.
Ach ja, ich kenne zwar Monat/Jahr des "ersten" Wertes, weiß aber natürlich nicht wiebviele Monate / Jahre ausgegeben werden und wieviele Monate "fehlen"....
Danke,
Moses
Hi,
Kann mir jemand einen Hinweis geben wie man so etwas am besten lösen kann.
mit der umgebenden Programmlogik.
Ein weiteres Problem, daß eine einfache Lösung ala addiere immer drei Werte ausschließt, ist, daß wenn es für einen Monat keine Umsätze gibt, wird dieser Monat auch nicht von der Abfrage zurück gegeben.
In dem Fall musst Du analysieren, ob Du Dich noch im gleichen Quartal befindest. Falls nicht, gibst Du die Ergebnisse aus und annullierst diese für die nachfolgende Berechnung.
Ach ja, ich kenne zwar Monat/Jahr des "ersten" Wertes, weiß aber natürlich nicht wiebviele Monate / Jahre ausgegeben werden und wieviele Monate "fehlen"....
Innerhalb der Schleife kennst Du vor allem immer Monat und Jahr des _aktuellen_ Wertes. Die des vorherigen kannst Du Dir merken. Mehr brauchst Du eigentlich nicht.
Cheatah
Hi,
Hallo Cheatah,
erstmal danke, daß Du Dich meiner mal wieder annimmst, habe schon viele gute Hinweise von Dir bekommen, allerdings habe ich heute anscheinend ein ganzes Sägewerk vorm Kopp...
Hab' jetzt scon so viel probiert (while, for, foreach, if etc. in verschiedenen Kombinationen) und bin einfach noch nicht weitergekommen, bzw. einfach nur noch verwirrt...
Wäre Dir dankbar, wenn Du mich noch etwas mehr auf den richtigen Weg leiten könntest.
Muß zuerst kontrollieren zu welchem Jahr der Datensatz gehört. ??
Dann zu welchem Quartal dieses Jahres der Monat gehört.
Dann die den Umsatz des Monats zum Quartalsumsatz addieren.
Wenn alle Monate des Quartals durchgelaufen sind das Ergebnis ausgeben und die Variablen zurück setzen.
Soweit ist das klar, nur am Umsetzen hapert es noch etwas (sehr wahrscheinlich übersehe ich irgendeine blöde Kleinigkeit)
Danke,
Moses
Hi,
Hab' jetzt scon so viel probiert (while,
while sollte passen.
Muß zuerst kontrollieren zu welchem Jahr der Datensatz gehört. ??
Diese Spalte gehört zu denen, die Du selektierst. Dann weißt Du es.
Dann zu welchem Quartal dieses Jahres der Monat gehört.
Das hast Du entweder gemäß Norberts Tipp ermittelt, oder machst es in der Programmlogik anders. Sollte nicht weiter schwierig sein.
Dann die den Umsatz des Monats zum Quartalsumsatz addieren.
Variable.
Wenn alle Monate des Quartals durchgelaufen sind das Ergebnis ausgeben und die Variablen zurück setzen.
Nein. Wenn der aktuelle Monat nicht mehr zu dem Quartal gehört, zu dem Du die Summe berechnet hast.
Soweit ist das klar, nur am Umsetzen hapert es noch etwas (sehr wahrscheinlich übersehe ich irgendeine blöde Kleinigkeit)
Im Grunde musst Du nur einen Deutsch-PHP-Dolmetscher verwenden. Da ist nichts wirklich magisches dran.
Cheatah
Hi
Im Grunde musst Du nur einen Deutsch-PHP-Dolmetscher verwenden.
tja und genau da scheitert es im Moment wohl...
wenn ich das mit if Schleife für die Monate mache habe ich das ganze jetzt so weit, daß mir für jeden Datensatz das Quartalsergebnis ausgegeben wird aber natürlich nach jedem Monat, sprich es wird Januar Umsatz ausgegeben, dann jan+Feb Umsatz, dann Jan+Feb+März Umsatz, dann April Umsatz, April + Mai, etc.
Also gebe ich die Variablen zufrüh aus, was mir im Script auch klar ist, komm aber momentan einfach nicht darauf wie das zu vermeiden ist.......
Ich kapier das einfachste nicht mehr.
Grüße,
Moses
Hi,
wenn ich das mit if Schleife für die Monate mache
hm? Die Schleife geht über alle Datensätze, nicht über Teile davon.
Also gebe ich die Variablen zufrüh aus, was mir im Script auch klar ist, komm aber momentan einfach nicht darauf wie das zu vermeiden ist.......
Merke Dir günstige Zustände. Viel mehr als vorheriges Jahr, vorheriges Quartal und die Summe wirst Du nicht brauchen.
Ich kapier das einfachste nicht mehr.
Zeit für den Feierabend.
Cheatah
Moin, moin!
Zuordnung der Monate zu Quartalen:
Quartal=int((Monat-1)/3)+1 mit Januar=1 ... Dezember=12
Hilft das ein wenig weiter?
Norbert