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 doanh thu theo vùng và năm

    Tập đoàn Viettel lập báo cáo doanh thu theo từng vùng và từng năm, đồng thời có dòng tổng cộng mỗi vùng (tất cả các năm).

    Bảng baocao:

    Cột Kiểu Ý nghĩa
    vung NVARCHAR(20) Vùng
    nam INT Năm
    doanhthu BIGINT Doanh thu (đồng)

    Dùng GROUP BY ROLLUP để tổng hợp theo (vung, nam) và có dòng tổng theo vung. Với dòng tổng (nam là NULL), in năm là 0. In vung, nam, tongdt.

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

      SETUP SQL tạo bảng baocao và chèn dữ liệu.

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

      1 ≤ số dòng ≤ 1000. doanhthu ≥ 0.

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

      Mỗi dòng: vung, nam (0 nghĩa là tổng vùng), tongdt. Sắp xếp theo vung tăng dần, nam tăng dần (dòng tổng nam=0 đứng đầu mỗi vùng).

    Ví dụ:

    Đầu vào:

    CREATE TABLE baocao (vung NVARCHAR(20), nam INT, doanhthu BIGINT);
    INSERT INTO baocao VALUES
    (N'Bac', 2022, 100),
    (N'Bac', 2023, 200),
    (N'Nam', 2023, 500);

    Đầu ra:

    Bac	0	300
    Bac	2022	100
    Bac	2023	200
    Nam	0	500
    Nam	2023	500

    Giải thích:

    Vùng Bac có dòng tổng (nam=0) = 300, rồi 2022=100, 2023=200. Vùng Nam có tổng=500 và 2023=500. Dòng tổng nam=0 đứng đầu mỗi vùng.

    Đang tải editor...