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

    Đề bài: [SQL Server] Sản lượng bán hàng sáu tháng đầu năm theo nhân viên

    Công ty dược Traphaco đánh giá trình dược viên qua sản lượng bán 6 tháng đầu năm. Báo cáo dạng ngang: mỗi nhân viên một dòng, sáu cột t1–t6 là tổng sản lượng từng tháng, kèm cột tongcong là tổng cả 6 tháng. Tháng thiếu dữ liệu hiện 0.

    Bảng banhang:

    Cột Kiểu Ý nghĩa
    manv varchar(10) Mã nhân viên
    thang int Tháng (1–6)
    soluong int Sản lượng bán (hộp)

    Một nhân viên có thể có nhiều dòng cùng tháng. Dùng PIVOT (SUM(soluong) FOR thang IN ([1]..[6])), ISNULL từng cột, và cộng sáu cột để ra tongcong.

    Ví dụ

    NV01 bán tháng 1: 30 hộp, tháng 3: 20 hộp thì in NV01 30 0 20 0 0 0 50.

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

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

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

      1≤1 \le1≤ số dòng ≤2000\le 2000≤2000; 1≤thang≤61 \le thang \le 61≤thang≤6; 0≤soluong≤1050 \le soluong \le 10^50≤soluong≤105.

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

      SELECT in manv, t1, t2, t3, t4, t5, t6, tongcong, sắp xếp theo manv tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE banhang (manv varchar(10), thang int, soluong int);
    INSERT INTO banhang VALUES ('NV01',1,30),('NV01',3,20),('NV02',2,15),('NV02',2,25),('NV02',6,10);

    Đầu ra:

    NV01	30	0	20	0	0	0	50
    NV02	0	40	0	0	0	10	50

    Giải thích:

    NV01 có tháng 1 = 30, tháng 3 = 20, các tháng khác 0, tổng 50. NV02 có hai dòng tháng 2 cộng thành 40, tháng 6 = 10, tổng 50.

    Chủ đề

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

    Đang tải editor...