MySQL Abfrage von SUM in WHERE

chris4712

Erfahrenes Mitglied
Hallo!

Habe eine Tabelle actions in der Aufgaben und benötigte Helfer (actions.Actors) stehen.
Dann eine Tabelle participant in der die Anzahl der Leute stehen (participant.People).

Nun sollen nur die Zeilen der Tabelle actions ausgegeben werden bei denen noch zu wenige Helfer eingetragen sind:
SQL:
SELECT actions.ID, actions.ShortDescription, actions.Pulldown, actions.Actors AS ReqActors,
  (SELECT SUM(participant.People)
   FROM participant
   WHERE Action = actions.ID) AS AvActors
FROM actions
WHERE Type = 'Action' AND Enabled = 'true'
ORDER BY Status ASC, ShortDescription ASC

In der WHERE Klausel wollte ich dann eigentlich Abfragen ReqActors> AvActors

Geht aber nicht so wirklich. Auch mit HAVING stehe ich grade auf Kriegsfuß.

Bräuchte bitte mal einen Schubser. Danke!
 
SQL:
SELECT
  a.ID,
  a.ShortDescription,
  a.Pulldown,
  a.Actors AS ReqActors,
  p.AvActors
FROM actions a
INNER JOIN
  (
  SELECT action, SUM(participant.People) AS AvActors
  FROM participant GROUP BY action
  ) p
ON p.action = a.id
WHERE a.TYPE = 'Action'
  AND a.Enabled = 'true'
  AND a.Actors > p.AvActors
ORDER BY
  a.STATUS,
  a.ShortDescription;
 
Zurück