Problem mit SELECT, SUM und WHERE

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

  • Problem mit SELECT, SUM und WHERE

    Hallo,
    ich habe ein kleines Problem mit einer Datenbank Abfrage.

    Erstmal etwas zur Datenbankstruktur
    In der Datenbanktabelle "bio_user" sind folgende, für meine Frage wichtige, Spalten enthalten:
    • id
    • betrag_meff
    • eingeloest

    Nun zu meinem Problem
    Ich wollte mit folgender Abfrage den Gesamtwert (von Spalte "betrag_meff") aller Zeilen, in denen eingeloest gleich "meff" ist, ermitteln:
    PHP-Code:
    $sql mysql_query("SELECT eingeloest SUM(betrag_meff) FROM bio_user WHERE $eingeloest='meff'"); 
    $eingeloest_meff mysql_result($sql,0) or die (mysql_error());
    echo 
    $eingeloest_meff 
    Ich erhalte allerdings immer einen MySQL-Error:
    Code:
    You have an error in your SQL syntax near 'SUM(betrag_meff) FROM bio_user WHERE ='meff'' at line 1
    Für mich, mit meinen beschränkten PHP/SQL-Kentnissen, sieht das ganze so aus, als wenn "$eingeloest" erst garnicht gefunden wird...
    Naja, finde leider keine Lösung und würde mich sehr über hilfreiche Antworten freuen!
    cu phil.
    [COLOR=black]:: [ vernetzt.es ] ::[/COLOR]

  • #2
    WHERE $eingeloest='meff'" <--- FALSCH!!!

    u hast doch keine spalte, die $eingeloest heißt!!!

    Kommentar


    • #3
      ???

      ...BITTE HELF MIR...

      Ich kann ja jetzt völlig auf dem Schlauch stehen, aber ich habe doch eine Spalte "eingeloest". Hab ich doch auch geschrieben ... oder ... hab ich deinen Hinweis irgendwie nicht verstanden???

      cu phil.
      [COLOR=black]:: [ vernetzt.es ] ::[/COLOR]

      Kommentar


      • #4
        kein wunder, wenn du das $ in deinem code nicht siehst, dann wohl auch nicht in meinem Post, wa?

        ich empfehle

        user_sleep(10);

        Kommentar


        • #5
          OK. SORRY!
          War ein langer Tag -> user_sleep(5);

          Aber ich habe jetzt einfachmal das "$" entfernt, bekomme allerdings immernoch einen MySQL-Error:

          Code:
          You have an error in your SQL syntax near 'SUM(betrag_meff) FROM bio_user WHERE eingeloest='meff'' at line 1
          Liegt das jetzt an meiner Dummheit, sprich "müsste der Code eigentlich funktionieren?" oder ist wirklich ein Fehler drin?
          Wie schon gesagt bin noch Newbie, allso nicht hauen, wenn ich wieder einen dummen Fehler mache...

          cu phil.


          PS: Bin begeistert von deiner Reaktionsgeschwindigkeit. RESPEKT (4 min)
          [COLOR=black]:: [ vernetzt.es ] ::[/COLOR]

          Kommentar


          • #6
            SELECT eingeloest SUM(betrag_meff) AS summe

            versuchs mal so zu erweitern...

            ansonsten mach mal mehrere Zeilen aus dem Query, dann wird der fehler schneller sichbar. ich brauche auch langsam schlaf.

            Kommentar


            • #7
              So, jetzt doch noch eine Antwort...

              Hab es nach deinem Vorschlag so versucht:
              PHP-Code:
              $sql mysql_query("SELECT eingeloest 
              SUM(betrag_meff)
              AS summe
              FROM bio_user 
              WHERE eingeloest='meff'"
              ); 
              $eingeloest_meff mysql_result($sql,0) or die (mysql_error());
              echo 
              $eingeloest_meff 
              Ergebnis:
              Code:
              You have an error in your SQL syntax near 'SUM(betrag_meff) AS summe FROM bio_user WHERE eingeloest='' at line 2
              Dann hab ich es auch noch so versucht:
              PHP-Code:
              $sql mysql_query("SELECT eingeloest
              SUM(betrag_meff)
              FROM bio_user 
              WHERE eingeloest='meff'"
              ); 
              $eingeloest_meff mysql_result($sql,0) or die (mysql_error());
              echo 
              $eingeloest_meff 
              Ergebnis:
              Code:
              You have an error in your SQL syntax near 'SUM(betrag_meff) FROM bio_user WHERE eingeloest='meff'' at line 2
              Es scheint also an dieser Zeile zu liegen:
              PHP-Code:
              SUM(betrag_meff
              Nur was ist daran falsch?
              PHP-Code:
              $sql mysql_query("SELECT SUM(betrag_meff) FROM bio_user"); 
              $betrag_meff mysql_result($sql,0) or die (mysql_error());
              echo 
              $eingeloest_meff 
              funktioniert nämlich problemlos...

              Ich verbleibe hiermit in der Hoffnung auf Hilfe und ein bißchen Schlaf .
              cu phil.
              [COLOR=black]:: [ vernetzt.es ] ::[/COLOR]

              Kommentar


              • #8
                ich hatte das eingeloest in der ersten zeile nicht gesehen. du musst die spalten mit , trennen:

                PHP-Code:
                SELECTeingeloest,
                SUB(tab) AS summe
                FROM bla
                WHERE x
                =

                Kommentar


                • #9
                  ok, da war ich mir nicht so sicher...
                  Habs jetzt so versucht, allerdings neuen Fehler (hoffentlich nerve ich dich noch nicht zu sehr):
                  PHP-Code:
                  $sql mysql_query("SELECT eingeloest, 
                  SUM(betrag_meff)
                  AS summe
                  FROM bio_user 
                  WHERE eingeloest='meff'"
                  ); 
                  $eingeloest_meff mysql_result($sql,0) or die (mysql_error());
                  echo 
                  $eingeloest_meff
                  ERGEBNIS:
                  Code:
                  Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
                  Ich kann allerdings nicht so genau sagen, was das heißen, bzw. was ich jetzt machen soll.
                  cu phil.
                  [COLOR=black]:: [ vernetzt.es ] ::[/COLOR]

                  Kommentar


                  • #10
                    also, eingeloes liefert dir ja für jede db zeile ein ergebnis zurück. sum jedoch nur für die gesamte db ein einziges.

                    rein testweise mal das as summe weglassen.
                    oder mal group by eingeloest hinzufügen
                    oder mal group py 1 anhängen.

                    kann für nichts garantieren, ich bin total müde...

                    Kommentar


                    • #11
                      So, mit ein bißchen Schlaf geht das ganze doch gleich viel besser...

                      Dank deines Tipps habe ich die Lösung jetzt doch noch gefunden:
                      PHP-Code:
                      $sql mysql_query("SELECT eingeloest, SUM(betrag_meff) AS summe FROM bio_user WHERE eingeloest='meff' GROUP BY eingeloest"); 
                      while (
                      $myrow mysql_fetch_array($sql)) { 
                      echo 
                      $myrow[summe];

                      Nochmal vielen Dank für deine nächtliche Hilfe!

                      cu phil.
                      [COLOR=black]:: [ vernetzt.es ] ::[/COLOR]

                      Kommentar


                      • #12
                        sach ich doch...

                        kein problem. Support bei nacht kostet 3Geld35.

                        Kommentar


                        • #13
                          OK! Für den Nachtservice zahle ich doch gerne...


                          Ich denke es müsste passen...

                          Kannst Dir ja ein Eis kaufen, bei der Hitze *schwitz*

                          cu phil.
                          [COLOR=black]:: [ vernetzt.es ] ::[/COLOR]

                          Kommentar


                          • #14


                            danke!

                            Kommentar

                            Lädt...
                            X