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

    Đề bài: [SQL Server] Doanh thu quý 1 theo vùng

    Bảng revenue(region, month, amount) lưu doanh thu theo vùng và theo tháng. Cột month là số tháng nguyên, chỉ gồm các tháng của quý 1: 1, 2, 3.

    Hãy xoay (PIVOT) thành bảng chéo: mỗi dòng là một vùng, ba cột T1, T2, T3 là tổng doanh thu của vùng đó trong tháng 1, 2, 3 tương ứng; tháng nào không có thì 0. Thêm cột Tong là tổng doanh thu cả quý của vùng. Sắp xếp theo Tong giảm dần, nếu bằng nhau thì theo region tăng dần.

    Yêu cầu: dùng PIVOT; lưu ý cột nguồn là số nguyên nên trong IN (...) phải dùng [1], [2], [3].

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

      Bảng revenue đã được tạo sẵn. Cột: region NVARCHAR, month INT (thuộc {1,2,3}), amount INT.

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

      Số bản ghi ≤30\le 30≤30, 0≤amount≤1060 \le amount \le 10^60≤amount≤106.

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

      Mỗi vùng một dòng gồm 5 cột (cách nhau bởi TAB): region, T1, T2, T3, Tong; theo thứ tự Tong giảm dần rồi region tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE revenue(region NVARCHAR(30), month INT, amount INT);
    INSERT INTO revenue(region,month,amount) VALUES (N'Bac',1,100),(N'Bac',2,200),(N'Nam',1,500),(N'Nam',3,50);

    Đầu ra:

    Nam	500	0	50	550
    Bac	100	200	0	300

    Giải thích:

    Nam: T1=500,T3=50,Tong=550. Bac: T1=100,T2=200,Tong=300. Sap theo Tong giam.

    Chủ đề

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

    Đang tải editor...