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

    Đề bài: [SQL Server] Doanh thu theo quý

    Bảng sales(product, quarter, amount) lưu doanh thu của từng sản phẩm theo quý. Cột quarter nhận một trong các giá trị 'Q1', 'Q2', 'Q3', 'Q4'.

    Hãy xoay (PIVOT) dữ liệu thành dạng bảng chéo: mỗi dòng là một sản phẩm, bốn cột Q1, Q2, Q3, Q4 là tổng doanh thu của sản phẩm đó trong từng quý. Quý nào sản phẩm không có doanh thu thì điền 0. Sắp xếp theo product tăng dần.

    Yêu cầu: dùng toán tử PIVOT của SQL Server.

    Ví dụ: nếu Áo có Q1 = 120 và Q2 = 150 thì dòng Áo là Áo 120 150 0 0.

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

      Bảng sales đã được tạo sẵn. Cột: product NVARCHAR, quarter NVARCHAR(2) (thuộc {Q1,Q2,Q3,Q4}), 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 sản phẩm một dòng gồm 5 cột (cách nhau bởi TAB): product, Q1, Q2, Q3, Q4; theo thứ tự product tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE sales(product NVARCHAR(50), quarter NVARCHAR(2), amount INT);
    INSERT INTO sales(product,quarter,amount) VALUES (N'Ao',N'Q1',100),(N'Ao',N'Q1',20),(N'Ao',N'Q2',150),(N'Quan',N'Q1',80);

    Đầu ra:

    Ao	120	150	0	0
    Quan	80	0	0	0

    Giải thích:

    Ao: Q1=100+20=120, Q2=150, Q3=Q4=0. Quan: Q1=80, con lai 0.

    Chủ đề

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

    Đang tải editor...