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

    solution

    Đề bài: [SQL Server] Báo cáo chéo doanh số với CUBE

    Công ty bảo hiểm muốn báo cáo chéo số hợp đồng theo kenh và loaihd, gồm cả các tổng phụ và tổng chung, dùng toán tử CUBE.

    Cột Kiểu Ý nghĩa
    kenh nvarchar(20) Kênh bán (Online/Daily)
    loaihd nvarchar(20) Loại hợp đồng
    sohd int Số hợp đồng

    Dùng GROUP BY CUBE(kenh, loaihd). Khi một cột bị tổng hợp, in nhãn 'TAT CA' (dùng GROUPING()).

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

      SETUP SQL tạo bảng hopdong và chèn số hợp đồng theo kênh và loại.

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

      sohd ≥ 0. Nhãn 'TAT CA' đại diện cho mức tổng hợp của cột tương ứng.

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

      Ba cột: kenh, loaihd, tonghd. Sắp xếp theo kenh, loaihd tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE hopdong (kenh nvarchar(20), loaihd nvarchar(20), sohd int);
    INSERT INTO hopdong VALUES
    (N'Online',N'Nhan tho',5),(N'Online',N'Xe',3),
    (N'Daily',N'Nhan tho',2);

    Đầu ra:

    Daily	Nhan tho	2
    Daily	TAT CA	2
    Online	Nhan tho	5
    Online	TAT CA	8
    Online	Xe	3
    TAT CA	Nhan tho	7
    TAT CA	TAT CA	10
    TAT CA	Xe	3

    Giải thích:

    CUBE tạo mọi tổ hợp tổng hợp: theo kenh, theo loaihd, tổng chung, và các tổng phụ. Cột bị tổng hợp hiển thị 'TAT CA'. Tổng chung = 10.

    Đang tải editor...