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

    solution

    Đề bài: [SQL Server] Chênh lệch lương so với trung bình phòng ban

    Phòng nhân sự muốn hiển thị mỗi nhân viên kèm chênh lệch lương của họ so với trung bình toàn công ty.

    Dùng subquery scalar trong mệnh đề SELECT.

    Cột Kiểu Ý nghĩa
    manv nvarchar Mã nhân viên
    luong int Lương

    Ví dụ: nếu lương trung bình là 100, nhân viên lương 120 có chênh lệch +20.

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

      Bảng nhan_vien.

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

      AVG làm tròn 2 chữ số. Sắp xếp theo manv.

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

      Các cột manv, luong, chenh_lech (DECIMAL 2 chữ số) so với AVG.

    Ví dụ:

    Đầu vào:

    CREATE TABLE nhan_vien (manv nvarchar(10), luong int);
    INSERT INTO nhan_vien VALUES (N'NV1',100),(N'NV2',200),(N'NV3',300);

    Đầu ra:

    NV1	100	-100.000000
    NV2	200	0.000000
    NV3	300	100.000000

    Giải thích:

    Luong trung binh = (100+200+300)/3 = 200. NV1 chenh = 100-200 = -100.00, NV2 = 0.00, NV3 = 100.00. Sap theo manv.

    Đang tải editor...