Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Bài Tập SQL Tuyển sinh ?Tìm Thủ Khoa? Cần Các Bạn Giúp Đỡ!

  1. #1
    Ngày gia nhập
    05 2010
    Bài viết
    5

    Unhappy Bài Tập SQL Tuyển sinh ?Tìm Thủ Khoa? Cần Các Bạn Giúp Đỡ!

    mình là mem mới môn SQL và có một bài tập SQL là quản lý TUYEN SINH của thầy cho:


    SQL Code:
    1. Thisinh (SoBD , hoten ,ngaysinh ,noisinh , namtotnghiep ,namduthi ,loaitotnghiep ,Manghanh )
    2. Nghanh (Manghanh ,tennghanh )
    3. MonThi (MaMT ,tenMT)
    4. KetQua (SoBD ,MaMT ,Diem)


    CÂU HỎI NHƯ SAU :
    Có Câu Là Lập DS Thí Sinh Dự Thi Khóa 2011 Đậu Thủ Khoa Của Từng Ngành(Mỗi Ngành có thể có nhiều thí sinh đậu thủ khoa).Sinh Viên Đậu Thủ Khoa Là Sinh Viên Có Điểm Từng Môn Lớn Hơn 5 Và Có Tổng Điểm Thi Hai Môn là Cao Nhất Của Ngành Đó

    Bài làm Của Mình :

    SQL Code:
    1. SELECT thisinh.sobd,hoten,ngaysinh,noisinh,manghanh , SUM(ketqua.diem) AS tong_diem
    2. FROM thisinh ,ketqua
    3. WHERE thisinh.sobd=ketqua.sobd AND namduthi='2011' AND diem>='5'
    4. GROUP BY thisinh.sobd,hoten,ngaysinh,noisinh,manghanh
    5. HAVING COUNT( ketqua.sobd) =2 AND SUM(ketqua.diem) > ALL(SELECT
    6.                                                          SUM(diem)AS tong_diem  FROM ketqua,thisinh WHERE
    7.                                                          diem>='5' AND namduthi='2011' AND thisinh.sobd=ketqua.sobd
    8.                                                          GROUP BY thisinh.sobd
    9.                                                          HAVING COUNT(thisinh.sobd)=2)
    các pro test dùm mình xem bị gì .
    Mong được các pro giúp đở .XIn Chân Thành Cám Ơn !!!

    Đây Là Database Các Pro Test Thử (Đã Nhập Dữ Liệu): mình sài kis2011 nên yên tâm không có chuyện virus ở đây !
    Attached Files Attached Files

  2. #2
    Ngày gia nhập
    03 2011
    Bài viết
    464

    Mình cũng mới làm quen với cái này nên chưa rành lắm. Mình có viết một cái trong đề bài của bạn nè
    SQL Code:
    1. SELECT ts.MaNghanh, HoTen, NgaySinh, NoiSinh, XXX.Diem
    2. FROM
    3. (
    4.             SELECT MaNghanh, MAX(Diem) AS Diem
    5.             FROM
    6.             (
    7.                     SELECT ts.MaNghanh,ts.HoTen, ts.NgaySinh, ts.NoiSinh, SUM(kq.Diem) AS Diem
    8.                     FROM ThiSinh ts, KetQua kq
    9.                     WHERE ts.Sobd=kq.Sobd
    10.                     AND kq.Diem>5
    11.                     GROUP BY ts.MaNghanh,ts.HoTen, ts.NgaySinh, ts.NoiSinh
    12.             ) XX
    13.  
    14.             WHERE Diem > 10
    15.             GROUP BY MaNghanh
    16. ) XXX , ThiSinh ts, KetQua kq
    17.  
    18. WHERE ts.MaNghanh=XXX.MaNghanh
    19. AND ts.Sobd=kq.Sobd
    20. GROUP BY ts.MaNghanh, HoTen, NgaySinh, NoiSinh,XXX.Diem
    21. HAVING  SUM(kq.Diem)=XXX.Diem
    bongda24h.tv

  3. #3
    Ngày gia nhập
    02 2011
    Nơi ở
    Tp.HCM
    Bài viết
    124

    Code mình đây, bạn có thể bổ sung thêm các thông tin cần hiện thị

    SQL Code:
    1. SELECT t.sobd, t.hoten, t.manghanh, MAX(c.tongdiem) tongdiem --Thông tin hiện thị
    2. FROM thisinh AS t
    3. JOIN
    4. ( --Đếm số môn trên 5 và tổng điểm của mỗi thí sinh
    5.     SELECT sobd, COUNT(diem) AS lan, SUM(diem) tongdiem
    6.     FROM ketqua
    7.     WHERE diem > 5
    8.     GROUP BY sobd
    9. ) AS c ON t.sobd = c.sobd
    10. WHERE t.namduthi = 2011 --Năm tuyển sinh
    11.     AND c.lan IN (SELECT COUNT(mamt) AS somt FROM monthi) --Số môn thi
    12. GROUP BY t.sobd, t.hoten, t.manghanh

  4. #4
    Ngày gia nhập
    05 2010
    Bài viết
    5

    hiểu rùi. thank anh lieuluc

  5. #5
    Ngày gia nhập
    12 2009
    Bài viết
    1

    SQL Code:
    1. SELECT sobd, hoten, manghanh, MAX(tongdiem) AS diem FROM
    2. (
    3.     SELECT thisinh.sobd,manghanh,hoten,ngaysinh,noisinh,tongdiem FROM
    4.     (
    5.         SELECT sobd, SUM(diem) tongdiem FROM ketqua WHERE diem>5 GROUP BY sobd
    6.     ) tbl_temp LEFT JOIN thisinh ON tbl_temp.sobd= thisinh.sobd
    7. ) tbl_cuthe WHERE tbl_cuthe.tongdiem>10 GROUP BY sobd, hoten, manghanh

    Câu lệnh truy vấn SQL có nhiều cách viết tùy theo tư duy của mỗi người. Quan trọng hơn là làm sao để tối ưu và tăng performance cho hệ thống.
    Bạn cũng có thể viết theo cách này
    SQL Code:
    1.     SELECT tbcuthe.sobd, tbcuthe.hoten, tbcuthe.manghanh, tbcuthe.ngaysinh, tbcuthe.noisinh, MAX(tongdiem) diem
    2.     FROM(
    3.         SELECT thisinh.sobd, thisinh.hoten, thisinh.manghanh, thisinh.ngaysinh, thisinh.noisinh, SUM(ketqua.diem) AS tongdiem
    4.         FROM thisinh, ketqua WHERE thisinh.sobd=ketqua.sobd AND ketqua.diem>5
    5.         GROUP BY ketqua.sobd, thisinh.sobd, thisinh.hoten, thisinh.manghanh, thisinh.ngaysinh, thisinh.noisinh
    6.     ) AS tbcuthe
    7.     WHERE tbcuthe.tongdiem>10
    8.     GROUP BY tbcuthe.manghanh, tbcuthe.sobd, tbcuthe.hoten, tbcuthe.manghanh, tbcuthe.ngaysinh, tbcuthe.noisinh
    Đã được chỉnh sửa lần cuối bởi nampp123 : 12-06-2014 lúc 02:48 PM.

Các đề tài tương tự

  1. Toàn Quốc Ngày hội phỏng vấn - tuyển dụng tại trường ĐH Bách Khoa HCM 16/11
    Gửi bởi cleverads26 trong diễn đàn Tuyển dụng - Việc làm CNTT
    Trả lời: 0
    Bài viết cuối: 15-11-2013, 10:29 AM
  2. Mẹo vệ sinh nhà cữa 1 cách khoa học nhất - VỆ sinh Hoàn Mỹ
    Gửi bởi trung__123 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 21-08-2013, 10:41 PM
  3. Tuyển sinh khoá học lập trình web khai giảng liên tục các tháng trong năm
    Gửi bởi sky_fly.ptit trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 18-04-2013, 08:39 PM
  4. Tuyển sinh khoá thực hành kế toán trên chứng từ thực tế
    Gửi bởi dvse3a trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 22-06-2012, 04:29 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn