Daten addieren
Thomas
- datenbank
0 wahsaga0 Andreas Görtz0 Frank (no reg)0 wahsaga
0 Thomas
Halloechen alle miteinander
Ich hab da folgendes kleines Problem.
Meine Datenbank (MySQL) besitzt zwei Felder die heissen
Gewicht und Datum.
Datumsformat ist 20040822.
Nun bräuchte ich einen SELECT Befehl mit dem ich die Monate
auflisten kann und die gesamten Gewichte addiert werden sodas
am Ende das Gesamtvolumen pro Monat raus kommt.
Ich wäre um Antwort dankbar.
Gruss Thomas
hi,
Meine Datenbank (MySQL) besitzt zwei Felder die heissen
Gewicht und Datum.
Datumsformat ist 20040822.
welcher _spaltentyp_?
Nun bräuchte ich einen SELECT Befehl mit dem ich die Monate
auflisten kann und die gesamten Gewichte addiert werden sodas
am Ende das Gesamtvolumen pro Monat raus kommt.
_wenn_ du einen der datumstypen von mysql für die spalte benutzt hast, kannst du daraus ganz einfach mit MONTH() den monat extrahieren, danach GROUPieren lassen, und mit COUNT() die summe der jeweiligen gewichtswerte erstellen lassen.
(in dieser simplen form addiert das natürlich _alle_ werte nach monat, also auch die aus dem august letzten jahres werden zum wert für august diesen jahres addiert.
wenn du das anders haben willst, musst du deine aufgabenstellung exakter ausformulieren.)
gruß,
wahsaga
Hi,
eine winzige Korrektur:
[...]und mit COUNT() die summe der jeweiligen gewichtswerte erstellen lassen.
die Summe wird mit SUM() gebildet.
Gruß,
Andreas.
Hi,
COUNT() -> zählen
SUM() -> summieren
mit COUNT() eine Summe erstellen lassen wäre mir neu, aber mySQL ist nicht mein Fachgebiet ;-)
Ciao, Frank
hi,
COUNT() -> zählen
SUM() -> summierenmit COUNT() eine Summe erstellen lassen wäre mir neu, aber mySQL ist nicht mein Fachgebiet ;-)
ja, ihr habt beide recht, kleiner fauxpas meinerseits.
gruß,
wahsaga
Hey Hey
Es sollte schon nach Monat und Jahr groupiert werden denn anders macht das keinen Sinn...
Welchen Typ muss die Spalte Datum haben ?
Habe die Spalte auf TYP Date gesetzt so ist es einfacher nach Datum zu groupieren.
hi,
Habe die Spalte auf TYP Date gesetzt so ist es einfacher nach Datum zu groupieren.
gut, und wenn du jetzt YEAR() und MONTH() darauf anwendest und nach beiden gruppierst, sollte das ergebnis von SUM() das gewünschte sein.
gruß,
wahsaga
So soweit bin ich schon mal um die Datensätze aus 08 und 2004 aufzulisten
SELECT *
FROM touren
WHERE MONTH( Verladedatum ) =08 AND YEAR( Verladedatum ) =2004
Nur wo kommt die addition mit den Gewichten hin ???
Haben fertig glaube das muesste richtig sein
SELECT SUM( Gewicht )
FROM touren
WHERE MONTH( Verladedatum ) =08 AND YEAR( Verladedatum ) =2004
hi,
Haben fertig glaube das muesste richtig sein
SELECT SUM( Gewicht )
FROMtouren
WHERE MONTH( Verladedatum ) =08 AND YEAR( Verladedatum ) =2004
jepp.
aber so hast du das ja nur für einen speziellen monat - wenn du das jetzt für alle haben möchtest, müsstest du diese query ja x mal mit veränderten parametern aufrufen - ungünstig.
wenn du es also "für alle" haben willst, beschäftige dich trotzdem noch mal mit GROUP BY.
gruß,
wahsaga
Ich wollte es in ein php Script einbauen um mir den entsprechenden Monat und das Jahr eingeben zu können.
klappt soweit auch bis auf das ich nicht weiss in welcher Varibalen der Wert gespeichert wird.
Mache ich es im phpmyadmin steht dort SUM(Gewicht) und darunter der Wert.
So habe ich es im Script eingetragen
$suche=explode(" - ",$suchen);
case "V4" : $sql="SELECT SUM( Gewicht ) FROM touren WHERE MONTH( Verladedatum ) = '$suchen%' AND YEAR( Verladedatum ) ='$suchen%'";
break;
Könntest du mir vielleicht sagen wo der Wert drin steht ???
Haben fertig
case "V4" : $sql="SELECT SUM( Gewicht )AS summe FROM touren WHERE MONTH( Verladedatum ) = '$suche[0]'AND YEAR( Verladedatum ) = '$suche[1]'";
break;^M
Danke für eure Tips
use Mosche;
SELECT *
FROMtouren
WHERE MONTH( Verladedatum ) =08 AND YEAR( Verladedatum ) =2004Nur wo kommt die addition mit den Gewichten hin ???
SELECT SUM(gewicht) FROM touren GROUP BY MONTH(Verladedatum), YEAR(Verladedatum);
ungetestet
use Tschoe qw(Matti);