Summe einer Spalte?!?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Summe einer Spalte?!?

    Also, ich hab jetzt verschiedene sachen gesucht, aber mir fehlt vielleicht das passende stichwort!

    und zwar hab ich hier z.b. ne tabelle in der datenbank:

    NR | HEIMTORE | GASTTORE | TEAM HEIM | TEAM GAST
    1 | 3 | 4 | 1 | 2
    2 | 2 | 6 | 3 | 1
    3 | 1 | 2 | 2 | 3


    so wie bekomme ich es jetzt am besten hin, dass er mir folgendes ausgibt:

    team 1 = 9:6
    team 2 = 5:5
    team 3 = 4:7
    (so wäre es ja, wenn man es so auslesen würde aus der datenbank)

    wenn ich ne while schleife mache, dann listet er mir ja halt alles auf, sortiert aber weder nach teams noch zählt er mir die tore zusammen!

  • #2
    jetzt sach nicht, du hättest SUM() nicht gefunden?

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      jetzt sach nicht, du hättest SUM() nicht gefunden?
      doch und auch benutzt! doch wie muss ich das mit der while schleife benutzen?

      und dann wäre ja noch die frage offe, wie sag ich ihm, dass er z.b. nur team eins auflisten soll?

      ich meine da sind 300 spiele drin, gemacht von 12 teams! nun soll er ja für jedenes einzelne team auflisten, wie viele tore usw. er hat!

      also wie füg ich sowas hier z.b. zusammen:

      PHP-Code:
      $query "select * from ifsl_system_spieltag_2003_ger WHERE heimteam = '$row_spiel[Zaehler]' OR gastteam = '$row_spiel[Zaehler]'";
      $result mysql_query($query);
      $num mysql_numrows($result);
      while(
      $row mysql_fetch_assoc($result)) {

      PHP-Code:
      $a = array(2468);
      echo 
      "sum(a) = ".array_sum($a)."\n";

      $b = array("a"=>1.2,"b"=>2.3,"c"=>3.4);
      echo 
      "sum(b) = ".array_sum($b)."\n"

      Kommentar


      • #4
        hmm,

        ich hab so das gefühl, daß deine db-struktur relativ ungeeignet ist, um das gewünschte zu erreichen ... so kommts mir zumindest vor. mag sein, daß ich mich irre, ...
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          ich bin ja für alle ideen offen! wie müsste sowas denn aussehen?

          Kommentar


          • #6
            und dann wäre ja noch die frage offe , wie sag ich ihm, dass er z.b. nur team eins auflisten soll?
            was kann ich schon wieder dafür

            Offe

            Kommentar


            • #7
              hat denn keiner ne idee? es muss doch ne möglichkeit geben!

              Kommentar


              • #8
                ist das denn schwer:

                SELECT bla bla WHERE team = 1

                Kommentar


                • #9
                  naja is schon nicht einfach wenn nicht unmöglich was Du vorhast mit einem query. Du solltest Deine Tabellenstruktur ändern und für jedes Spiel 2 Datensätze einziehen einen mit der Heimmannschaft einen mit der gastmannschaft...
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    Original geschrieben von hansi
                    ist das denn schwer:

                    SELECT bla bla WHERE team = 1

                    gut ich könnte jetzt für jedes team sowas machen! dann müsste ich 12 WHILE schleifen machen, für jedes team eine!

                    nur wie zähle ich dann die tore zusammen! er würde mir dann ja 22 mal die tore auflisten (weil es 22 spiele sind bei mir) nur wie zählt er die tore aus den 22 spielen zusammen? ich habs mit der sum funktion versucht, hat aber nicht geklappt!

                    Kommentar


                    • #11
                      gut ich könnte jetzt für jedes team sowas machen! dann müsste ich 12 WHILE schleifen machen, für jedes team eine!
                      Code:
                      GROUP BY team
                      sollte auch gehn
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar


                      • #12
                        Original geschrieben von derHund
                        Code:
                        GROUP BY team
                        sollte auch gehn
                        aber damit kann ich ja sicher immer noch nicht die TORE aller spieler pro VEREIN zusammen zählen oder?

                        Kommentar


                        • #13
                          hmm,

                          natürlich nicht. ist ja keine vollständige query .... aber group by geht schon in die richtung ...

                          vorschlag:
                          - setz dich hin, mach ne liste mit den daten, die du hast, und mit den anforderungen
                          - überlegt dir eine passende db-struktur
                          - die query ergfibt sich dann fast von selbst ...
                          Die Zeit hat ihre Kinder längst gefressen

                          Kommentar


                          • #14
                            die frage ist ja, was ist an meiner nicht passend! vielleicht verstehe ich in dieser richtung zu wenig! also ich kann ne tabelle auslesen, sortieren usw. !

                            also ich kann ja mal erzählen was ich erreichen will und wir gehen mal davon aus, ich hätte noch gar nichts!

                            ich hätte gerne eine mySQL tabelle in der drin steht: datum, heimmannschaft, gastmannschaft, heimtore, gasttore

                            nun hätte ich gerne eine tabelle, wo er die mannschaften auflistet und nach punkten und toren sortiert! also muss er aus diesen 300 spielen die 12 mannschaften raussuchen und die halt auflisten! und ich stehe davor wie ne ochs vorm berg!

                            Kommentar


                            • #15
                              also,

                              wenn du deine tabelle so aufbaust
                              Code:
                              #
                              # Tabellenstruktur für Tabelle `sp`
                              #
                              CREATE TABLE sp (
                                id int(11) NOT NULL auto_increment,
                                id_spiel int(11) NOT NULL default '0',
                                id_mann int(11) NOT NULL default '0',
                                tore int(11) NOT NULL default '0',
                                PRIMARY KEY  (id)
                              ) TYPE=MyISAM;
                              #
                              # Daten für Tabelle `sp`
                              #
                              INSERT INTO sp VALUES (1, 1, 1, 3);
                              INSERT INTO sp VALUES (2, 1, 2, 6);
                              INSERT INTO sp VALUES (3, 2, 1, 4);
                              INSERT INTO sp VALUES (4, 2, 3, 6);
                              INSERT INTO sp VALUES (5, 3, 2, 3);
                              INSERT INTO sp VALUES (6, 3, 3, 1);
                              kannst du per

                              Code:
                              SELECT s1.id_mann, sum(s1.tore) etore, SUM(s2.tore) gtore
                              FROM sp s1
                              JOIN sp s2 
                              ON (s1.id_spiel = s2.id_spiel AND s1.id_mann != s2.id_mann)
                              GROUP BY s1.id_mann
                              das gewünschte ergebnis erreichen ...

                              in wie weit ich jetzt redundanz verbreite, weiß ich nicht ... es sieht ja auch etwas doppelt gemoppelt aus ... aber wenn ich schon posaune, daß es geht, wollte ich zumindest ne lösung präsentieren ... hab auch nicht so den plan von JOIN

                              sollte zumindest passende ergebnisse auswerfen, wenn ich mich nicht verrechnet hab ...
                              Die Zeit hat ihre Kinder längst gefressen

                              Kommentar

                              Lädt...
                              X