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

    solution

    Đề bài: [SQL Server] Sinh dãy ngày trong kỳ khuyến mãi

    Sàn Shopee mở đợt khuyến mãi từ một ngày bắt đầu kéo dài liên tục một số ngày. Cần sinh ra danh sách tất cả các ngày trong đợt để gán mã giảm giá.

    Bảng khuyenmai:

    Cột Kiểu Ý nghĩa
    ma INT Mã đợt
    ngaybatdau DATE Ngày bắt đầu
    songay INT Số ngày kéo dài (gồm cả ngày đầu)

    Với mỗi đợt, dùng CTE đệ quy sinh ra songay ngày liên tiếp kể từ ngaybatdau. In ma, ngay (yyyy-mm-dd).

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

      SETUP SQL tạo bảng khuyenmai và chèn dữ liệu.

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

      1 ≤ songay ≤ 100. 1 ≤ số đợt ≤ 50.

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

      Mỗi dòng: ma, ngay (varchar yyyy-mm-dd). Sắp xếp theo ma tăng dần, ngay tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE khuyenmai (ma INT, ngaybatdau DATE, songay INT);
    INSERT INTO khuyenmai VALUES
    (1, '2024-12-12', 3),
    (2, '2025-01-01', 2);

    Đầu ra:

    1	2024-12-12
    1	2024-12-13
    1	2024-12-14
    2	2025-01-01
    2	2025-01-02

    Giải thích:

    Đợt 1 sinh 3 ngày: 12, 13, 14 tháng 12. Đợt 2 sinh 2 ngày: 01 và 02 tháng 01.

    Đang tải editor...