Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: [SQL 6.3] Xóa khách hàng không hoạt động và toàn bộ dữ liệu liên quan

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 6: Thay đổi dữ liệu: INSERT, UPDATE, DELETE — khóa SQL

    Chính sách lưu trữ: khách hàng có status = 'INACTIVE' và không có giao dịch (Trades) nào từ ngày 2025-09-25 trở đi (12 tháng gần nhất, ngày 2025-09-25 được tính là còn hoạt động) bị xóa khỏi hệ thống cùng mọi dữ liệu phụ thuộc.

    Do ràng buộc khóa ngoại, phải xóa theo đúng thứ tự từ bảng con đến bảng cha: Trades → Orders → Portfolio → Accounts → CustomerStats → Customers.

    Lưu ý:

    • Khách hàng INACTIVE nhưng còn giao dịch từ 2025-09-25 thì giữ nguyên toàn bộ.
    • Khách hàng không có giao dịch nào (chưa từng giao dịch) cũng thuộc diện bị xóa nếu INACTIVE.
    • Không có khách hàng nào được giới thiệu bởi (referrer_id) khách hàng bị xóa. AuditLog không có khóa ngoại nên không cần xử lý.
    • Mẹo: chốt trước danh sách khách hàng cần xóa (bảng tạm, học ở Buổi 5) vì khi đã xóa dần từng tầng, chuỗi nối Trades–Orders–Accounts bị đứt nên không tính lại được tiêu chí.
    • Định dạng đầu vào:

      Customers, Accounts, Orders, Trades, Portfolio, CustomerStats.

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

      (Chấm theo trạng thái dữ liệu: số dòng mỗi bảng và tổng customer_id còn lại.)

    Ví dụ:

    Đầu vào:

    Đầu ra:

    38	807	88	120	86	209	38

    Giải thích:

    Khách hàng 4 và 9 là INACTIVE và chưa từng giao dịch; các khách hàng INACTIVE khác (17, 23, 36) có giao dịch trong 12 tháng nên được giữ.

    Chủ đề

    📊 SQLSQLSQL: Buổi 6 – INSERT, UPDATE, DELETETất cả môn học

    Đang tải editor...