Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
SQL Server-None Aggregate function Query
Mình tìm được một câu hỏi về SQL khá là hay trên trang web nước ngoài. Để cho dễ mình tạm dịch CSDL ra như sau. Câu hỏi không yêu cầu dùng hết các bảng nhưng mình vẫn liệt kê hết.
HọcSinh (Tên, Mã_HS, CMND, Ngành_Học, Nơi_Sinh, Niêm_Khóa)
Primary Key (PK): Mã_HS
Unique: CMND
Lớp (Mã_Lớp, Tên_Lớp, Khoa)
PK: Mã_Lớp
CLB_HọcSinh (Mã_CLB, Tên_CLB, PresidentID, Năm_Thành_Lập)
PK: Mã_CLB
Unique: Tên_CLB
Foreign Key (FK): PresidentID references Mã_HS
Lớp_Đăng_Kí ( Mã_HS_ĐK, Mã_Lớp_ĐK, Học_Kì, Năm)
PK: (Mã_HS_ĐK, Mã_Lớp)
FK: Mã_HS_ĐK references Mã_HS
FK: Mã_Lớp_ĐK references Mã_Lớp
Thành_Viên_CLB (Mã_Thành_Viên, Mã_CLB_TV, Gia_Nhập)
PK: (Mã_Thành_Viên, Mã_CLB)
FK: Mã_Thành_Viên references Mã_HS
FK: Mã_CLB_TV references Mã_CLB
Câu hỏi: Lấy ra các CLB mà thành viên của các nhóm đó là giống nhau. Ví dụ:
-CLB Bóng đá: Hoàng, Bình, Duy
-CLB Bơi: Lan, Khoa
-CLB Toán có: Sơn, Minh, Hằng
-CLB Tiếng Anh: Hoàng, Bình, Duy.
-CLB Marathon: Lan, Khoa.
Khi chạy query thì nó ra “CLB Bóng đá” và “CLB Marathon”.
Yêu cầu: không dùng kiến thức vượt quá bài số 17 trong serie SQL của Howkteam và không được dùng aggregate function. Nếu bạn nào chưa xem thì nói chung là được dùng tới truy vấn lồng thôi. If-else, loop gì đó thì không đươc dùng.
Câu hỏi này không có đáp án nhưng mình có 1 vài thắc mắc:
1. Mình có thể viết 1 query để giải mà không Hardcode đc ko?
PS: thử hardcode nhưng ko giải đc nên không hardcode là mình mù tịt.
2. Giả sử mình không dùng aggregate function thì câu hỏi sẽ được giải như thế nào?
Bạn nào có gợi ý hay hướng đi để giải thì cho mình biết. Mình cảm ơn nhiều. :D
Cho xin cái database đi! Làm cho!
Cám ơn bạn. Chắc khó quá bỏ qua :))
1. nếu không dùng T-SQL thì chỉ có thể truy vấn lồng thôi. bản chất select là 1 dạng filter. từ cái bảng to bự của bạn nó bào từ từ theo điều kiện để ra bộ kết quả cuối cùng theo điều kiện bạn muốn
2. không rõ :3