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

    solution

    Đề bài: [SQL Server] Khách chi tiêu lớn qua bảng dẫn xuất

    Ví điện tử VNPay Mini ghi nhận từng lần thanh toán trong bảng giaodich:

    Cột Kiểu Ý nghĩa
    ma INT mã giao dịch
    makh INT mã khách
    sotien INT số tiền (đồng)

    Hãy tìm các khách hàng có tổng chi tiêu từ 2000000 đồng trở lên. Yêu cầu kỹ thuật: tính tổng theo khách trong một truy vấn con ở mệnh đề FROM (bảng dẫn xuất có bí danh), sau đó lọc ở truy vấn ngoài — không dùng HAVING.

    Ví dụ: khách có 3 giao dịch 900000 + 700000 + 400000 = 2000000 vừa chạm ngưỡng nên được chọn.

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

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

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

      1≤1 \le1≤ số dòng ≤500\le 500≤500; 1000≤sotien≤1071000 \le sotien \le 10^71000≤sotien≤107 mỗi giao dịch.

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

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

    Ví dụ:

    Đầu vào:

    CREATE TABLE giaodich (ma INT, makh INT, sotien INT);
    INSERT INTO giaodich VALUES (1, 101, 900000),(2, 101, 700000),(3, 101, 400000),(4, 102, 1500000),(5, 103, 2500000),(6, 102, 300000);

    Đầu ra:

    103	2500000
    101	2000000

    Giải thích:

    Khách 101 tổng 2000000 (đúng ngưỡng), khách 103 tổng 2500000 — đều được chọn. Khách 102 tổng 1800000 chưa đạt. Sắp theo tổng giảm dần: 103 (2500000) rồi 101 (2000000).

    Đang tải editor...