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

    solution

    Đề bài: [SQL Server] Sinh tổ hợp ca trực và phòng khám

    Một bệnh viện cần lập lịch phân công: mỗi ca trực phải được ghép với mỗi phòng khám để tạo ra toàn bộ tổ hợp khả dĩ.

    Dùng CROSS JOIN để sinh tích Đề-các giữa hai bảng.

    Cột Kiểu Ý nghĩa
    maca int Mã ca trực
    tenca nvarchar Tên ca
    Cột Kiểu Ý nghĩa
    maphong int Mã phòng
    tenphong nvarchar Tên phòng

    Ví dụ: 2 ca × 3 phòng = 6 dòng tổ hợp.

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

      Bảng ca_truc và phong_kham.

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

      Sắp xếp theo tenca, tenphong.

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

      Các cột tenca, tenphong cho mọi tổ hợp.

    Ví dụ:

    Đầu vào:

    CREATE TABLE ca_truc (maca int, tenca nvarchar(20));
    CREATE TABLE phong_kham (maphong int, tenphong nvarchar(20));
    INSERT INTO ca_truc VALUES (1,N'Sang'),(2,N'Chieu');
    INSERT INTO phong_kham VALUES (1,N'Noi'),(2,N'Ngoai'),(3,N'Nhi');

    Đầu ra:

    Chieu	Ngoai
    Chieu	Nhi
    Chieu	Noi
    Sang	Ngoai
    Sang	Nhi
    Sang	Noi

    Giải thích:

    2 ca nhân 3 phong cho 6 to hop. Sap xep theo tenca roi tenphong: Chieu-Ngoai, Chieu-Nhi, Chieu-Noi, Sang-Ngoai, Sang-Nhi, Sang-Noi.

    Đang tải editor...