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 9.2] SP khóa khách hàng ngủ đông (OUTPUT số dòng ảnh hưởng)

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 9: Stored Procedure & Trigger (cơ bản) — khóa SQL

    Tạo stored procedure sp_DeactivateDormant với 2 tham số:

    1. INPUT: since (kiểu DATE);
    2. OUTPUT: affected (INT) — số khách hàng đã bị khóa.

    Procedure chuyển sang INACTIVE mọi khách hàng đang ACTIVE mà không có lệnh nào (bảng Orders, qua các tài khoản của khách hàng) có order_date >= since. Khách hàng không có tài khoản/lệnh nào cũng bị coi là "ngủ đông". Khách hàng NEW/INACTIVE không bị đụng tới. affected phải bằng số dòng Customers thật sự bị cập nhật (SQL Server: @@ROWCOUNT, MySQL: ROW_COUNT()).

    Hệ thống chấm gọi procedure với since = '2026-09-22' rồi in customer_id, status, affected của mọi khách hàng.

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

      Bảng Customers, Accounts, Orders(account_id, order_date).

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

      customer_id, status, affected (TAB), sắp theo customer_id tăng dần (cột affected lặp lại ở mọi dòng).

    Ví dụ:

    Đầu vào:

    Đầu ra:

    1	INACTIVE	16
    2	ACTIVE	16
    3	INACTIVE	16
    4	INACTIVE	16
    5	NEW	16
    6	INACTIVE	16
    7	INACTIVE	16
    8	ACTIVE	16
    9	INACTIVE	16
    10	INACTIVE	16
    11	ACTIVE	16
    12	NEW	16
    13	INACTIVE	16
    14	ACTIVE	16
    15	INACTIVE	16
    16	ACTIVE	16
    17	INACTIVE	16
    18	ACTIVE	16
    19	NEW	16
    20	ACTIVE	16
    21	INACTIVE	16
    22	ACTIVE	16
    23	INACTIVE	16
    24	ACTIVE	16
    25	ACTIVE	16
    26	NEW	16
    27	INACTIVE	16
    28	INACTIVE	16
    29	ACTIVE	16
    30	INACTIVE	16
    31	INACTIVE	16
    32	ACTIVE	16
    33	INACTIVE	16
    34	INACTIVE	16
    35	ACTIVE	16
    36	INACTIVE	16
    37	INACTIVE	16
    38	INACTIVE	16
    39	ACTIVE	16
    40	ACTIVE	16

    Giải thích:

    16 khách hàng ACTIVE không có lệnh nào từ 2026-09-22 trở đi bị chuyển INACTIVE.

    Chủ đề

    📊 SQLSQLSQL: Buổi 9 – Stored Procedure & TriggerTất cả môn học

    Đang tải editor...