Đặt nói cách khác, lỗi này là nói cho bạn rằng SQL Server không biết mà B để lựa chọn từ nhóm.
Hoặc bạn muốn chọn một giá trị cụ thể (ví dụ như MIN, SUMhoặc AVG) trong trường hợp này bạn sẽ sử dụng hàm tổng hợp thích hợp, hoặc bạn muốn chọn tất cả các giá trị như một hàng mới (tức là bao gồm Btrong GROUP BYdanh sách trường).
Hãy xem xét các dữ liệu sau:
ID AB
1 1 13
1 1 79
1 2 13
1 2 13
1 2 42
Truy vấn
SELECT A, COUNT(B) AS T1
FROM T2
GROUP BY A
sẽ trở lại:
A T1
1 2
2 3
đó là tất cả tốt và tốt.
Tuy nhiên, hãy xem xét truy vấn (bất hợp pháp) sau, truy vấn sẽ tạo ra lỗi này:
SELECT A, COUNT(B) AS T1, B
FROM T2
GROUP BY A
Và tập dữ liệu trả về của nó minh họa vấn đề:
A T1 B
1 2 13? 79? Cả 13 và 79 là hàng riêng biệt? (13 + 79 = 92)? ...?
2 3 13? 42? ...?
Tuy nhiên, hai truy vấn sau làm rõ điều này và sẽ không gây ra lỗi:
Sử dụng tổng hợp
SELECT A, COUNT(B) AS T1, SUM(B) AS B
FROM T2
GROUP BY A
sẽ trở lại:
A T1 B
1 2 92
2 3 68
Thêm cột vào GROUP BYdanh sách
SELECT A, COUNT(B) AS T1, B
FROM T2
GROUP BY A, B
sẽ trở lại:
A T1 B
1 1 13
1 1 79
2 2 13
2 1 42