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

    solution

    Đề bài: [SQL Server] Khách hàng im ắng suốt năm 2024

    Chuỗi nhà sách Tri Thức Trẻ muốn gửi mã giảm giá "quay lại với chúng tôi" cho các khách hàng không phát sinh đơn nào trong năm 2024 (chưa từng mua, hoặc chỉ mua ở các năm khác).

    Bảng khachhang:

    Cột Kiểu Ý nghĩa
    ma INT mã khách
    ten NVARCHAR(100) họ tên

    Bảng donhang:

    Cột Kiểu Ý nghĩa
    ma INT mã đơn
    makh INT mã khách đặt
    ngaydat DATE ngày đặt
    tongtien INT tổng tiền (đồng)

    Hãy liệt kê các khách hàng thuộc diện trên. Yêu cầu dùng NOT EXISTS (anti-join), không dùng NOT IN để tránh bẫy NULL.

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

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

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

      Mỗi bảng 1≤1 \le1≤ số dòng ≤300\le 300≤300; ngày đặt từ 2020-01-01 đến 2025-12-31.

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

      Mỗi dòng gồm 2 cột: ma, ten — sắp xếp theo ma tăng dần. Có thể không có dòng nào.

    Ví dụ:

    Đầu vào:

    CREATE TABLE khachhang (ma INT, ten NVARCHAR(100));
    INSERT INTO khachhang VALUES (1, N'Nguyen Thi Thao'),(2, N'Tran Van Duc'),(3, N'Le Thi Hang'),(4, N'Pham Van Kien');
    CREATE TABLE donhang (ma INT, makh INT, ngaydat DATE, tongtien INT);
    INSERT INTO donhang VALUES (1, 1, '2024-03-10', 250000),(2, 2, '2023-11-20', 180000),(3, 2, '2025-01-05', 90000),(4, 4, '2024-12-31', 320000);

    Đầu ra:

    2	Tran Van Duc
    3	Le Thi Hang

    Giải thích:

    Khách 1 và 4 có đơn năm 2024 nên bị loại. Khách 2 chỉ mua năm 2023 và 2025; khách 3 chưa mua bao giờ — cả hai đều thuộc diện gửi mã giảm giá.

    Đang tải editor...