Medmindre du inkluderer T.Client
i din GROUP BY
, kan du kun inkludere dette felt i en aggregeret funktion. I dit tilfælde ændrer gruppering efter det felt logikken, så det er ude (og er relateret til dit forsøg på at gruppere efter CASE-sætningen). Ombryd i stedet T.Client
i en aggregeret funktion.
På denne måde er dine grupper stadig de samme, og når der kun er én række, i henhold til din CASE-sætnings test, ved du, hvilket resultat den aggregerede funktion vil give.
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