Samuel Vogel: Frage zu kompliziertem SQL Statement

Beitrag lesen

Hey Leute,

Ich habe folgendes SQL Statement:

SELECT defendantFROMabuse WHERE ( t1.action!= 'skip' GROUP BYdefendantHAVING COUNT(*) >= 3 ) OR EXISTS (SELECT NULL FROMabuse t2 WHERE t2.defendant = t1.defendant AND t2.action = 'report');

Dieses Statement soll mir aus folgender Tabelle alle "defendant"s liefern, die entweder 3 mal vorkommen (aber 'skip' im Feld 'action' wird nicht gezählt) oder die einmal mit dem Wert 'report' im Feld 'action'.

+-----------+---------------------+--------+
| defendant | time                | action |
+-----------+---------------------+--------+
| boss512@1 | 2007-10-09 11:27:45 | bad    |
+-----------+---------------------+--------+
| ...       | ...                 | ...    |
+-----------+---------------------+--------+

Es funktioniert jedoch nicht, da ja "GROUP BY" immer nach "WHERE" Fragen kommen muss. Aber ich will ja praktisch, das das "GROUP BY" gar nicht immer ausgeführt wird.
Brauche ich dazu wirklich 2 SQL Statements, oder kann ich es in einem bewerkstelligen?

so long,
Samy