Es sei denn, Sie fügen T.Client
hinzu in Ihrem GROUP BY
, können Sie dieses Feld nur in eine Aggregatfunktion einschließen. In Ihrem Fall ändert die Gruppierung nach diesem Feld die Logik, das ist also aus (und hängt mit Ihrem Versuch zusammen, nach der CASE-Anweisung zu gruppieren). Umschließen Sie stattdessen T.Client
in einer Aggregatfunktion.
Auf diese Weise sind Ihre Gruppen immer noch dieselben, und wenn es gemäß dem Test Ihrer CASE-Anweisung nur eine Zeile gibt, wissen Sie, welches Ergebnis die Aggregatfunktion geben wird.
SELECT
T.Post,
ClientCount = COUNT(*) AS ClientCount,
Client = CASE COUNT(*) WHEN 1 THEN MAX(T.Client) ELSE '[Clients]' END
FROM
MyTable T
GROUP BY
T.Post