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

    solution

    Đề bài: [MySQL] Biến động giá tour theo mùa

    Công ty du lịch lưu giá niêm yết của mỗi tour qua các tháng. Với mỗi tour, hãy so sánh giá tháng hiện tại với tháng liền trước theo thứ tự thời gian.

    Bảng gia_tour:

    Cột Kiểu Ý nghĩa
    matour VARCHAR(10) Mã tour
    thang INT Tháng (1-12)
    gia INT Giá niêm yết (nghìn đồng)
    khachdat INT Số khách đã đặt

    Yêu cầu: in matour, thang, gia, giá tháng trước (gia_truoc) và chênh lệch số khách so với tháng trước (chenh_khach). Nếu không có tháng trước, hai cột này để 0.

    Ví dụ: tour có tháng 1 giá 5000, tháng 2 giá 5500 thì dòng tháng 2 có gia_truoc = 5000.

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

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

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

      1 <= thang <= 12. Không dùng NOW/CURDATE.

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

      Mỗi dòng: matour, thang, gia, gia_truoc, chenh_khach. Sắp xếp theo matour, thang tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE gia_tour (matour VARCHAR(10), thang INT, gia INT, khachdat INT);
    INSERT INTO gia_tour VALUES ('T01',1,5000,10),('T01',2,5500,15),('T01',3,5200,12),('T02',1,8000,5),('T02',2,8000,8);

    Đầu ra:

    T01	1	5000	0	10
    T01	2	5500	5000	5
    T01	3	5200	5500	-3
    T02	1	8000	0	5
    T02	2	8000	8000	3

    Giải thích:

    Tour T01 tháng 1 không có tháng trước nên gia_truoc=0, chenh_khach=0; tháng 2 gia_truoc=5000, chenh_khach=15-10=5. Tour T02 reset lại từ đầu.

    Đang tải editor...