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.3] Trigger cập nhật lại CustomerStats khi xóa giao dịch

    📖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 trigger trg_Trades_AfterDelete trên bảng Trades, kích hoạt sau khi DELETE. Với mỗi giao dịch bị xóa, trừ khỏi CustomerStats của khách hàng sở hữu: total_trade_value giảm quantity * price (của giao dịch bị xóa) và trade_count giảm 1.

    • SQL Server: dùng bảng ảo deleted, xử lý được nhiều dòng (kể cả nhiều giao dịch cùng khách hàng trong một câu DELETE).
    • MySQL: FOR EACH ROW, dùng OLD.cột.

    Hệ thống chấm xóa các giao dịch 32, 39 (cùng khách hàng), 71 và 3 rồi in toàn bộ customer_id, total_trade_value, trade_count của CustomerStats.

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

      Bảng Trades, Orders, Accounts, CustomerStats.

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

      customer_id, total_trade_value, trade_count (TAB), sắp theo customer_id.

    Ví dụ:

    Đầu vào:

    Đầu ra:

    1	0.00	0
    2	13800000.00	2
    3	0.00	0
    4	0.00	0
    5	220400000.00	5
    6	150250000.00	3
    7	0.00	0
    8	19350000.00	2
    9	0.00	0
    10	0.00	0
    11	45000000.00	1
    12	116800000.00	3
    13	0.00	0
    14	5050000.00	1
    15	0.00	0
    16	703300000.00	6
    17	48000000.00	1
    18	9750000.00	1
    19	13250000.00	1
    20	25350000.00	2
    21	0.00	0
    22	314525000.00	6
    23	106150000.00	3
    24	75250000.00	3
    25	50800000.00	4
    26	101500000.00	2
    27	186000000.00	1
    28	0.00	0
    29	0.00	0
    30	127450000.00	4
    31	25800000.00	3
    32	204650000.00	5
    33	31750000.00	3
    34	0.00	0
    35	256600000.00	4
    36	422600000.00	4
    37	195500000.00	3
    38	151950000.00	6
    39	100250000.00	3
    40	0.00	0

    Giải thích:

    KH2 mất 2 giao dịch (22,5tr + 15,5tr); KH29 mất giao dịch duy nhất nên về 0; giao dịch 3 thuộc KH5.

    Chủ đề

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

    Đang tải editor...