Thomas: Daten addieren

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

  1. 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

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hi,

      eine winzige Korrektur:

      [...]und mit COUNT() die summe der jeweiligen gewichtswerte erstellen lassen.

      die Summe wird mit SUM() gebildet.

      Gruß,
      Andreas.

    2. Hi,

      COUNT() -> zählen

      SUM()   -> summieren

      mit COUNT() eine Summe erstellen lassen wäre mir neu, aber mySQL ist nicht mein Fachgebiet ;-)

      Ciao, Frank

      1. hi,

        COUNT() -> zählen
        SUM()   -> summieren

        mit 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

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    3. Hey Hey

      Es sollte schon nach Monat und Jahr groupiert werden denn anders macht das keinen Sinn...

      Welchen Typ muss die Spalte Datum haben ?

      1. Habe die Spalte auf TYP Date gesetzt so ist es einfacher nach Datum zu groupieren.

        1. 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

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
          1. 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 ???

            1. Haben fertig glaube das muesste richtig sein

              SELECT SUM( Gewicht )
              FROM touren
              WHERE MONTH( Verladedatum ) =08 AND YEAR( Verladedatum ) =2004

              1. hi,

                Haben fertig glaube das muesste richtig sein

                SELECT SUM( Gewicht )
                FROM touren
                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

                --
                "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                1. 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 ???

                  1. 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

            2. use Mosche;

              SELECT *
              FROM touren
              WHERE MONTH( Verladedatum ) =08 AND YEAR( Verladedatum ) =2004

              Nur wo kommt die addition mit den Gewichten hin ???

              SELECT SUM(gewicht) FROM touren GROUP BY MONTH(Verladedatum), YEAR(Verladedatum);

              ungetestet

              use Tschoe qw(Matti);

              --
                Anyone who quotes me in their sig is an idiot. -- Rusty Russell.