ChrisB: MySQL COUNT() / SUM() bei Umkreissuche

Beitrag lesen

Hi,

Nun möchte ich die Spalte "pax" summieren. Die Spalte ist integer und kann auch nur Zahlen enthalten:

SELECT plz,pax, SUM(pax) Anzahl, (6368 * SQRT(2*(1-cos(RADIANS(breit)) *
cos(0.83267127885234) * (sin(RADIANS(lang)) *
sin(0.20519678936065) + cos(RADIANS(lang)) *
cos(0.20519678936065)) - sin(RADIANS(breit)) *
sin(0.83267127885234)))) AS distance
FROM TABELLE Having ((distance <= '10') or (distance <= 20 && ort = 'berlin'))
GROUP BY pax ORDER BY distance


> Als Ergebnis erhalte ich keine Datensätze mehr (MySQL lieferte ein leeres Resultat zurück...).  
  
Die Reihenfolge der Klauseln ist falsch – HAVING kommt nach GROUP BY.  
  
Und was noch falsch ist, ist dass du versuchst Spalten zu selektieren, die nicht Teil der Gruppierung sind. Das ist in SQL nicht erlaubt – und wird dir von MySQL je nach Einstellung entweder mit einem Fehler quitiert, oder aber stillschweigend ignoriert – wobei du dann aber in diesen Spalten einen \*zufälligen\* Wert aus allen Datensätzen der Gruppe bekommst.  
  
Aber wenn du alle pax-Werte aufsummieren willst, dann brauchst du doch gar keine Gruppierung danach …?  
  
MfG ChrisB  
  

-- 
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?