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

    solution

    Đề bài: [SQL Server] Nhân viên lương cao hơn quản lý

    Công ty logistics Sao Đỏ có sơ đồ tổ chức lưu ngay trong một bảng nhanvien — mỗi nhân viên trỏ tới quản lý trực tiếp của mình:

    Cột Kiểu Ý nghĩa
    ma INT mã nhân viên
    ten NVARCHAR(100) họ tên
    luong INT lương tháng (đồng)
    maql INT mã quản lý trực tiếp, NULL nếu là lãnh đạo cao nhất

    Ban nhân sự muốn rà soát các trường hợp nhân viên có lương cao hơn hẳn quản lý trực tiếp của mình. Hãy liệt kê những nhân viên như vậy kèm tên quản lý (lương bằng nhau thì không tính).

    Gợi ý tư duy: cần nối bảng nhanvien với chính nó.

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

      SETUP SQL tạo bảng nhanvien và chèn dữ liệu.

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

      1≤1 \le1≤ số dòng ≤300\le 300≤300; maql (nếu khác NULL) luôn tồn tại trong bảng; 106≤luong≤10810^6 \le luong \le 10^8106≤luong≤108; không có chu trình quản lý.

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

      Mỗi dòng gồm 4 cột: ma, ten, luong, tenql — sắp xếp theo ma tăng dần. Có thể không có dòng nào.

    Ví dụ:

    Đầu vào:

    CREATE TABLE nhanvien (ma INT, ten NVARCHAR(100), luong INT, maql INT);
    INSERT INTO nhanvien VALUES (1, N'Pham Thi Lan', 50000000, NULL),(2, N'Nguyen Van Binh', 30000000, 1),(3, N'Tran Van Cuong', 55000000, 1),(4, N'Le Thi Dung', 28000000, 2),(5, N'Hoang Van Hieu', 35000000, 2);

    Đầu ra:

    3	Tran Van Cuong	55000000	Pham Thi Lan
    5	Hoang Van Hieu	35000000	Nguyen Van Binh

    Giải thích:

    Cuong (55 triệu) vượt quản lý Lan (50 triệu); Hieu (35 triệu) vượt quản lý Binh (30 triệu). Lan là lãnh đạo cao nhất (maql NULL) nên không tham gia so sánh ở vai trò cấp dưới.

    Đang tải editor...