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

    solution

    Đề bài: [SQL Server] Tổng hợp đơn hàng theo nhiều cấp với GROUPING SETS

    Cửa hàng đồ uống Phúc Long muốn báo cáo số ly bán theo khuvuc, theo sanpham, và tổng toàn bộ — trong một truy vấn dùng GROUPING SETS.

    Cột Kiểu Ý nghĩa
    khuvuc nvarchar(30) Khu vực
    sanpham nvarchar(30) Tên sản phẩm
    soly int Số ly bán

    Yêu cầu dùng GROUPING SETS((khuvuc),(sanpham),()) để có:

    • Tổng theo từng khu vực (sanpham = 'TONG').
    • Tổng theo từng sản phẩm (khuvuc = 'TONG').
    • Tổng toàn bộ (cả hai = 'TONG').

    Dùng hàm GROUPING() để thay nhãn 'TONG' khi cột bị tổng hợp.

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

      SETUP SQL tạo bảng banhang và chèn số ly bán theo khu vực và sản phẩm.

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

      soly ≥ 0. Nhãn 'TONG' đại diện cho mức tổng hợp.

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

      Ba cột: khuvuc, sanpham, tongly. Sắp xếp theo khuvuc, sanpham tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE banhang (khuvuc nvarchar(30), sanpham nvarchar(30), soly int);
    INSERT INTO banhang VALUES
    (N'Mien Bac',N'Tra sua',10),(N'Mien Bac',N'Ca phe',5),
    (N'Mien Nam',N'Tra sua',8);

    Đầu ra:

    Mien Bac	TONG	15
    Mien Nam	TONG	8
    TONG	Ca phe	5
    TONG	TONG	23
    TONG	Tra sua	18

    Giải thích:

    GROUPING SETS tạo 3 mức: tổng theo khu vực (sanpham='TONG'), tổng theo sản phẩm (khuvuc='TONG'), và tổng toàn bộ (cả hai 'TONG' = 23).

    Đang tải editor...