Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [SQL Server] Sinh viên chưa hoàn thành đủ môn bắt buộc

    Một chương trình đào tạo có danh sách môn bắt buộc trong bảng monbatbuoc. Bảng dadat ghi các môn sinh viên đã đạt. Cần liệt kê sinh viên còn thiếu ít nhất một môn bắt buộc (dùng NOT EXISTS đa điều kiện).

    Bảng Cột Ý nghĩa
    sinhvien masv, hoten Sinh viên
    monbatbuoc mamon Môn bắt buộc
    dadat masv, mamon Môn đã đạt

    Liệt kê sinh viên mà tồn tại một môn bắt buộc họ chưa đạt.

    • Định dạng đầu vào:

      SETUP SQL tạo bảng sinhvien, monbatbuoc, dadat và chèn dữ liệu.

    • Ràng buộc đầu vào:

      Một sinh viên có thể đã đạt một số môn. So khớp theo (masv, mamon).

    • Định dạng đầu ra:

      Hai cột: masv, hoten. Sắp xếp theo masv tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE sinhvien (masv nvarchar(20), hoten nvarchar(50));
    CREATE TABLE monbatbuoc (mamon nvarchar(20));
    CREATE TABLE dadat (masv nvarchar(20), mamon nvarchar(20));
    INSERT INTO sinhvien VALUES (N'SV1',N'An'),(N'SV2',N'Binh');
    INSERT INTO monbatbuoc VALUES (N'M1'),(N'M2');
    INSERT INTO dadat VALUES (N'SV1',N'M1'),(N'SV1',N'M2'),(N'SV2',N'M1');

    Đầu ra:

    SV2	Binh

    Giải thích:

    Môn bắt buộc là M1, M2. SV1 đã đạt cả hai nên không thiếu. SV2 mới đạt M1, còn thiếu M2 nên được liệt kê.

    Đang tải editor...