Hi Andreas
SELECT SUM(Anzahl),bestellt
FROM p_bestelldaten
GROUP BY PID
HAVING bestellt = 0
So geht das nicht, ich habs schon beim letzten Posting erklärt wieso.
Group By bezieht sich auf die Felder die du beim Select angibst,
und da steht keine PID, wenn du danach gruppieren willst, dann gib
sie auch oben an. Was nützt es dir nach etwas zu gruppieren wenn du gar
nicht weist, zu welcher Gruppe die Ausgabezeile gehört?
Eine strengeres Datenbankmanagementsystem hätte dir die Query oben
um die Ohren geschmissen, welches bestellt soll ausgegeben werden?
Das vom ersten Teilbetrag der Summe, oder das vom hundertsten? Es
macht einfach keinen Sinn da bestellt anzugeben ausser du gruppierst
darüber und ziehst die Summe damit nur über die Datenzeilen, die
jeweils bestellt identisch haben.
Damit wurde alle Datensätze gefiltert, die noch keinen Wert im Datetime Feld "bestellt" hatten.
Dann mach das doch im where wenn du sie nicht in der Summe haben willst?
Having nimmt dir ganze Zeilen aus der Resultattabelle raus, also wenn
das, bei MySQL ziemlich zufällig (wohl physisch erste), hinzugefügte
bestellt = 0 ist, dann wird deine Summe nicht angezeigt, das ist wohl
nicht ganz das was du willst. Wenn du willst das die Zeile nicht in die
Summe kommt, dann filtere es im where hinaus, dass das Probleme gibt,
liegt wohl eher an der immernoch fehlerhaften Query.
Was du suchst dürfte wohl das sein:
SELECT PID, SUM(Anzahl)
FROM p_bestelldaten
WHERE bestellt = 0
GROUP BY PID
Gruss Daniela