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

    Đề bài: [SQL Server] Doanh thu chi nhánh xoay theo bốn quý

    Tổng công ty bán lẻ Hapro cần báo cáo dạng bảng ngang: mỗi chi nhánh một dòng, bốn cột là tổng doanh thu của bốn quý. Quý không có dữ liệu hiện 0.

    Bảng doanhthu:

    Cột Kiểu Ý nghĩa
    machinhanh varchar(10) Mã chi nhánh
    quy int Quý (1–4)
    tien int Doanh thu ghi nhận (đồng)

    Một chi nhánh có thể có nhiều dòng cùng quý (nhiều đợt ghi nhận) — cần cộng dồn. Dùng PIVOT (SUM(tien) FOR quy IN ([1],[2],[3],[4])) và ISNULL để thay NULL bằng 0.

    Ví dụ

    Chi nhánh CN1 có hai dòng quý 1 (100, 50) và một dòng quý 3 (80) thì in CN1 150 0 80 0.

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

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

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

      1≤1 \le1≤ số dòng ≤1000\le 1000≤1000; 1≤quy≤41 \le quy \le 41≤quy≤4; 0≤tien≤1080 \le tien \le 10^80≤tien≤108.

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

      SELECT in machinhanh, quy1, quy2, quy3, quy4, sắp xếp theo machinhanh tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE doanhthu (machinhanh varchar(10), quy int, tien int);
    INSERT INTO doanhthu VALUES ('CN1',1,100000000),('CN1',1,50000000),('CN1',3,80000000),('CN2',2,60000000),('CN2',4,90000000);

    Đầu ra:

    CN1	150000000	0	80000000	0
    CN2	0	60000000	0	90000000

    Giải thích:

    CN1 có hai khoản quý 1 cộng thành 150000000, quý 3 là 80000000, quý 2 và 4 không có dữ liệu nên in 0. CN2 chỉ có quý 2 và quý 4.

    Chủ đề

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

    Đang tải editor...