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

    Đề bài: [SQL Server] Đếm đơn hàng theo trạng thái bằng SUM CASE

    Hệ thống quản lý của chuỗi cửa hàng GHN Mart cần bảng tổng hợp: mỗi cửa hàng một dòng với số đơn ở ba trạng thái cho (chờ xử lý), giao (đã giao), huy (đã hủy). Bài này yêu cầu không dùng toán tử PIVOT mà xoay bảng thủ công bằng SUM(CASE ... END).

    Bảng donhang:

    Cột Kiểu Ý nghĩa
    madon int Mã đơn (khóa)
    macuahang varchar(10) Mã cửa hàng
    trangthai varchar(10) 'cho', 'giao' hoặc 'huy'

    Ví dụ

    Cửa hàng S1 có 2 đơn giao, 1 đơn hủy, 0 đơn chờ thì in S1 0 2 1.

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

      Script T-SQL tạo bảng donhang và chèn dữ liệu.

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

      1≤1 \le1≤ số dòng ≤2000\le 2000≤2000; trangthai chỉ nhận một trong ba giá trị 'cho', 'giao', 'huy'.

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

      SELECT in macuahang, socho, sogiao, sohuy, sắp xếp theo macuahang tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE donhang (madon int, macuahang varchar(10), trangthai varchar(10));
    INSERT INTO donhang VALUES (1,'S1','giao'),(2,'S1','giao'),(3,'S1','huy'),(4,'S2','cho'),(5,'S2','giao');

    Đầu ra:

    S1	0	2	1
    S2	1	1	0

    Giải thích:

    S1 có 0 đơn chờ, 2 đơn giao, 1 đơn hủy; S2 có 1 đơn chờ, 1 đơn giao, 0 đơn hủy. Mỗi cửa hàng một dòng với ba cột đếm.

    Chủ đề

    🗄️ Cơ sở dữ liệuSQL ServerSQL Server: PIVOTTất cả môn học

    Đang tải editor...