SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 18.11.2011, 16:03:21
BlueSteel BlueSteel ist offline
Anfänger
 
Registriert seit: Nov 2011
Alter: 43
Beiträge: 2
Ok, die Überschrift mag etwas verwirrend klingen, aber mir ist nichts Besseres eingefallen :)

Zu meinem Problem:

ich habe eine Tabelle die folgende Spalten hat:

date | Wert (INT)

bei 'date' steht erwartungsgemäß ein Datum. Bei Wert irgendein Wert.

Ich möchte jetzt einen Select bauen, mit dem ich die Werte für die letzten 12 Monate in der Zeile des letzten Monats stehen habe. Beispiel:

date ------- | Wert | kumulierter 12-monats-wert
2010-01-01 | 1 | 1
2010-02-01 | 3 | 4
2010-03-01 | 6 | 10
2010-04-01 | 2 | 12
2010-05-01 | 3 | 15
2010-06-01 | 4 | 19
2010-07-01 | 1 | 20
2010-08-01 | 2 | 22
2010-09-01 | 3 | 25
2010-10-01 | 4 | 29
2010-11-01 | 5 | 34
2010-12-01 | 6 | 40 <- bis hierhin Summe aller Werte
2011-01-01 | 7 | 46 <- ab hier Summe aller Werte, die innerhalb der letzten 12 Monate liegen (hier zw. 2010-02-01 und 2011-01-01)
2011-02-01 | 8 | 50
2011-03-01 | 9 | 49

Ich kumuliere also am Anfang alle Werte, bis ich 12 Monate voll habe. danach kumuliere ich nurnoch diejenigen Werte, die innerhalb der letzten 12 Monate liegen.

Habt Ihr eine Idee, wie ich das NUR mit MySQL hinbekomme?

Ich kann ja keine einfache Summe bilden, und die nach Jahr groupen. Dann habe ich nur jedes Jahr kumulierte Werte. Ich brauche sie aber jeden Monat ;)


BTW: Ich habe so ein Problem schon einmal gelöst. Allerdings wenig zufriedenstellend. Ich habe einfach jede Zeile einzeln selektiert und dan mit UNION alles zusammengehaun. Aber das ist echt keine schöne Art :)

Zumal ich das Am Ende für 4 Jahre machen muss. D.h., dass der Select dann eeeeeewig lang wird. Das ist alles nicht zufriedenstellend...

Ich habe schon über stored procedures nachgedacht, aber da habe ich überhaupt keinen Durchblick O.o

Vielen Dank schon einmal für eure Hilfe.
Mit Zitat antworten
  #2  
Alt 22.11.2011, 11:21:23
BlueSteel BlueSteel ist offline
Anfänger
 
Registriert seit: Nov 2011
Alter: 43
Beiträge: 2
AW: Kumulieren von x-monats-Werten

Ich fühle mich zwar, als ob ich Selbstgespräche führen würde, aber vielleicht hat ja irgendwann mal jemand ne Idee, wenn ich meine Ideen weiter veröffentliche :)

Ich habe mir jetzt eine Stored Procedure gebaut. Die sieht wie folgt aus:

Code:
BEGIN

DECLARE x DATE DEFAULT (SELECT min(month.pk) FROM month);
DECLARE y DATE DEFAULT (SELECT min(month.pk) FROM month);
DECLARE z INT DEFAULT 1;

WHILE y <= (SELECT max(month.pk) FROM month) DO
	
	SELECT y, SUM(month.days) FROM month WHERE month.pk between x AND y;

	IF

		z > 11 = 1 THEN SET x = x + INTERVAL 1 MONTH; 

	END IF;

	SET z = z + 1;
	SET y = y + INTERVAL 1 MONTH;
END WHILE;

END
Die Tabelle month beinhaltet die Monate (month.pk) und die Anzahl ihrer Tage (month.days). Wenn die Schleife durch ist, dann gibt er mir soviele Results, wie Monate in der Tabelle stehen. Die Results stimmen schon mal. Ich hätte aber gern die Ergebnisse alle untereinander in einem result. Ideen?
Mit Zitat antworten
  #3  
Alt 22.11.2011, 13:36:48
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Kumulieren von x-monats-Werten

Hi

Zitat:
Ich fühle mich zwar, als ob ich Selbstgespräche führen würde
ich mich auch, weil viele die gerne mit Datenbanken arbeiten nicht gerne die
Doku lesen O.o

Und noch besser find ich das kaum einer dran denkt vielleicht mal nen
SHOW CREATE TABLE tabellenname mit Testdaten zu liefern. Wir die helfen bauen uns die
sicher lieber selber, oder nein wir machen das ja im Kopf weil wir die Doku ja kennen.

So nun zu dir:
Soll ich dir nen Select schreiben oder tips geben welche Kombination aus den
dir vorliegenden Datenbank Funktionen du brauchst?

a. Tips
SUM, DATE_SUB

b.Select
Code:
SELECT 
   a.days,
   a.pk,
  (SELECT SUM(c.pk) FROM month AS c WHERE c.days<a.days) AS sum1,
  (SELECT SUM(b.pk) FROM month AS b WHERE days>DATE_SUB(a.days,INTERVAL 11 MONTH) AND days<=a.days) AS sum2
FROM `month` AS a
geht bestimmt noch eleganter, egal zum COPY&PASTE wirds reichen -.-

mfg

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mit switch wert prüfen zwischen zwei werten liegt neuling321 PHP Grundlagen 5 13.10.2008 16:35:17
SELECT Abfrage nur mit gefüllten Werten Skyman MySQLi/PDO/(MySQL) 0 25.10.2007 00:01:50
Formular Felder automatisch mit Werten füllen Maffy PHP für Fortgeschrittene und Experten 2 23.03.2007 13:33:53
IE verzerrt Zeilen trotz festen Werten Resu HTML, CSS und JavaScript Help! 2 10.04.2006 14:41:27
TXT Zeilenweise mit einzelnen Werten auslesen andreaskf PHP für Fortgeschrittene und Experten 2 18.08.2005 16:38:51


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:33:12 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt