Giải đáp truy vấn SQL

Em có 2 bảng như sau: em muốn đưa ra , họ, tên lót và tên cùng với số lượng nhân thân của mỗi sinh viên:

Em truy vấn thế này thi được :

SELECT HONV,TENNV,TENLOT, COUNT(*) FROM dbo.NHANVIEN,dbo.THANNHAN WHERE MANV = MA_NVIEN GROUP BY dbo.NHANVIEN.MANV,HONV,TENNV,TENLOT

Nhưng em thắc mắc là tại sao em làm như thế này lại không chạy:

SELECT HONV,TENNV,TENLOT, COUNT(*) FROM dbo.NHANVIEN,dbo.THANNHAN WHERE MANV = MA_NVIEN GROUP BY dbo.NHANVIEN.MANV

Mọi người giúp em với ạ, em cám ơn.

1 Like

Thông báo lỗi nó nói gì vậy bạn ??? :slight_smile:

1 Like

SELECT HONV,TENNV,TENLOT, COUNT(*) FROM dbo.NHANVIEN,dbo.THANNHAN WHERE MANV = MA_NVIEN GROUP BY dbo.NHANVIEN.MANV,HONV,TENNV,TENLOT

SELECT HONV,TENNV,TENLOT, COUNT(*) FROM dbo.NHANVIEN,dbo.THANNHAN WHERE MANV = MA_NVIEN GROUP BY dbo.NHANVIEN.MANV

Chỉ được select những column đã group by

1 Like

em cám ơn ạ…!

1 Like

khi có lỗi xảy ra bạn nên đọc dòng báo lỗi. Cái bạn hỏi ngay dòng báo lỗi nó đã tl cho bạn mà :smiley:

3 Likes

Câu 2 dòng select thay {cột} bằng MAX({cột}) thì vẫn chạy tốt :smiley: GROUP BY nhiều quá thì nó phải tạo ra bảng phụ để sort rất lag.

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?