Probleme mit GROUP BY

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

  • Probleme mit GROUP BY

    Hallo zusammen

    Wäre dankbar, wenn mir jemand beim folgenden Problem helfen könnte...

    Habe folgende Abfrage erstellt...
    SELECT TEL.strafesp AS spieler,
    SPI.vorname AS vorname,
    SPI.nachname AS nachname,
    SUBSTRING(TEL.spiel_id,4,4) AS saison
    FROM tbltelegramm_nla TEL
    LEFT OUTER JOIN tblspielerdaten SPI ON TEL.strafesp = SPI.id_spieler
    HAVING saison = '0304'

    Dabei werden alle Datensätze wie gewünscht ausgegeben. Wenn ich nun den Befehl Group By hinzufüge (Abfrage unten), dann sind einige der Datensätze, die vorher im oberen Resultat vorhanden waren, nicht mehr in der Ausgabe. Was habe ich da falsch gemacht?

    SELECT TEL.strafesp AS spieler,
    SPI.vorname AS vorname,
    SPI.nachname AS nachname,
    SUBSTRING(TEL.spiel_id,4,4) AS saison
    FROM tbltelegramm_nla TEL
    LEFT OUTER JOIN tblspielerdaten SPI ON TEL.strafesp = SPI.id_spieler
    GROUP BY TEL.strafesp
    HAVING saison = '0304'

  • #2
    dsatensätze, die in TEL.strafesp den gleichen wert haben, werden zusammengefasst

    wenn du das nicht willst, lass group by weg
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Einige dieser Datensätze werden mit dem GROUP BY eben nicht zusammengefasst. Das ist ja eigentlich mein Problem...

      Kommentar


      • #4
        beispiel?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Ich habe zum Beispiel bevor ich das GROUP BY hinzugefügt habe, in der Tabelle folgenden Datensatz...

          Spieler Vorname Nachname Saison
          =============================
          sp308 Yves Sarault 0304

          Wenn ich das GROUP BY hinzufüge, ist dieser Datensatz nicht mehr vorhanden. Und ich mache ja eigentlich nichts anderes, als die Datensätze zu gruppieren. Also müsste doch jeder Datensatz, der vorher vorgekommen ist, auch nachher einmal vorkommen.

          Kommentar


          • #6
            dann kommt eben der spieler sp308 noch einmal vor. und durch das group by wird nur einer davon gezeigt.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Der Spieler sp308 kommt in der ersten Ausgabe etwa 30 mal vor. Aber dann müsste er doch nach dem GROUP BY EINMAL vorkommen. Und er kommt eben überhaupt nicht vor!

              Kommentar


              • #8
                gibt es den spieler sp308 auch in ner anderen saison als 0304?

                eventuell kommen group by und having sich in die quere


                warum willst du denn gruppieren?
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Das ist so, den gibt es auch in 0203. Ich will gruppieren, damit ich nachher die Summe eines Feldes berechnen kann.

                  Die eigentliche Abfrage soll am Schluss eigentlich so aussehen...

                  SELECT TEL.strafesp AS spieler,
                  SPI.vorname AS vorname,
                  SPI.nachname AS nachname,
                  SUM(STR.strafen_laenge) AS sumstrafen,
                  SPI.aktuellerverein AS verein,
                  SUBSTRING(TEL.spiel_id,4,4) AS saison
                  FROM tbltelegramm_nla TEL
                  LEFT OUTER JOIN tblspielerdaten SPI ON TEL.strafesp = SPI.id_spieler
                  LEFT OUTER JOIN tblstrafen STR ON TEL.strafeart = STR.strafen_id
                  LEFT OUTER JOIN tblspielplan_nla SPP ON TEL.spiel_id = SPP.spiel_id
                  GROUP BY spieler
                  HAVING saison = '0304'
                  ORDER BY sumstrafen DESC
                  LIMIT 0,20

                  Kommentar


                  • #10
                    Kann ich denn die Abfrage in zwei Abfragen aufteilen? Zuerst die Daten, welche ich gruppieren will in einer Abfrage bereitstellen und diese Daten dann in einer zweiten Abfrage gruppieren? Dann sollte es ja keine Probleme mit dem HAVING geben.

                    Kommentar


                    • #11
                      Leider habe ich für dieses Problem noch immer keine Lösung gefünden. Kann mir da jemand helfen? Danke...

                      Kommentar

                      Lädt...
                      X