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.2] Cập nhật nhiều cột: chuyển lệnh MP chờ khớp thành LO theo giá đóng cửa

    📖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

    Thị trường đóng cửa nhưng vẫn còn lệnh thị trường (order_type = 'MP') chưa khớp (status = 'PENDING'). Quy tắc xử lý: chuyển các lệnh này thành lệnh giới hạn và đặt giá theo giá đóng cửa ngày 2026-09-25 của mã tương ứng:

    • order_type đổi từ 'MP' thành 'LO';
    • price = close_price của mã đó trong MarketPrices với trade_date = '2026-09-25'.

    Chỉ cập nhật lệnh MP đang PENDING (các lệnh MP đã MATCHED/PARTIAL/CANCELLED không được đổi). Cập nhật cả hai cột trong một câu UPDATE, lấy giá bằng subquery.

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

      Orders(order_id, symbol, order_type, price, status), MarketPrices(symbol, trade_date, close_price).

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

      (Chấm theo trạng thái dữ liệu: tổng hợp Orders theo status, order_type.)

    Ví dụ:

    Đầu vào:

    Đầu ra:

    CANCELLED	LO	10	331500.00
    CANCELLED	MP	7	324500.00
    MATCHED	LO	49	2406000.00
    MATCHED	MP	20	1000500.00
    PARTIAL	LO	12	726500.00
    PARTIAL	MP	5	380500.00
    PENDING	LO	17	846230.00

    Giải thích:

    5 lệnh MP đang PENDING (ID 6, 34, 62, 104, 118) được đổi thành LO với giá đóng cửa 2026-09-25.

    Chủ đề

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

    Đang tải editor...