Trừ khi bạn bao gồm T.Client
trong GROUP BY
của bạn , bạn chỉ có thể bao gồm trường đó trong một hàm tổng hợp. Trong trường hợp của bạn, việc nhóm theo trường đó sẽ thay đổi logic, do đó, điều đó không xảy ra (và có liên quan đến việc bạn cố gắng nhóm theo câu lệnh CASE). Thay vào đó, hãy bọc T.Client
trong một hàm tổng hợp.
Bằng cách này, các nhóm của bạn vẫn giống nhau và khi chỉ có một hàng, theo kiểm tra của câu lệnh CASE, bạn biết kết quả mà funciton tổng hợp sẽ đưa ra.
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