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

    Đề bài: [SQL Server] Số đơn theo trạng thái

    Bảng orders(id, channel, status) lưu các đơn hàng. Cột channel là kênh bán (ví dụ 'Web', 'App'), status nhận một trong ba giá trị 'Moi', 'Giao', 'Huy'.

    Hãy xoay (PIVOT) để mỗi dòng là một kênh, ba cột Moi, Giao, Huy là số lượng đơn của kênh đó ở từng trạng thái (đếm số đơn). Trạng thái nào không có đơn thì điền 0. Sắp xếp theo channel tăng dần.

    Yêu cầu: dùng toán tử PIVOT với hàm COUNT.

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

      Bảng orders đã được tạo sẵn. Cột: id INT, channel NVARCHAR, status NVARCHAR(10) (thuộc {Moi,Giao,Huy}).

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

      Số đơn ≤30\le 30≤30.

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

      Mỗi kênh một dòng gồm 4 cột (cách nhau bởi TAB): channel, Moi, Giao, Huy; theo thứ tự channel tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE orders(id INT, channel NVARCHAR(20), status NVARCHAR(10));
    INSERT INTO orders(id,channel,status) VALUES (1,N'Web',N'Moi'),(2,N'Web',N'Giao'),(3,N'Web',N'Moi'),(4,N'App',N'Huy');

    Đầu ra:

    App	0	0	1
    Web	2	1	0

    Giải thích:

    Web: Moi=2, Giao=1, Huy=0. App: Moi=0, Giao=0, Huy=1.

    Chủ đề

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

    Đang tải editor...