Tôi đang kéo dữ liệu nhân viên từ cơ sở dữ liệu SQL Server để vẽ biểu đồ tổ chức. Công ty của tôi có nhiều phòng ban (tôi nghĩ mọi công ty đều làm). Tôi chỉ muốn kéo một bộ phận cụ thể tại một thời điểm.Tự động thay đổi nút giám sát thành null
Trên cơ sở dữ liệu của chúng tôi, mọi trưởng phòng cũng báo cáo với CEO hoặc ghế .. Làm cách nào để thay đổi cột reportsToEmpId
(tại thời gian chạy) cho đầu bộ phận thành NULL? Nếu phụ huynh của trưởng phòng không thuộc về bộ phận này.
Đây là reportsTo cấu trúc bảng của tôi:
empId, name, reportsToEmpId, deptId
100, John, 99, 1
101, Mary, 100, 1
102, Carol, 100, 1
99, Jim, null, 2
Vì tôi chỉ kéo deptId = 1
, và Jim
không phải là dept1
. Tôi có thể tự động thay đổi cột của reportsToEmpId
thành NULL
không?
select fields I need
from reportsTo r
join employee e on r.empId = e.empId
join groupHightlight h on ...
where deptId=1
Tôi đã cố gắng sử dụng bảng tmp nhưng có vẻ quá cồng kềnh.
gốc đầu ra:
empId, name, reportsToEmpId, deptId
100, John, 99, 1
101, Mary, 100, 1
102, Carol, 100, 1
Dưới đây là kết quả mong muốn của tôi: (Tuy nhiên, tôi không muốn thực hiện bất kỳ thay đổi trên bảng ban đầu, vì nếu không thì nếu tôi muốn kéo tất cả mọi người báo cáo cho Giám đốc điều hành, sau đó tôi mất "kết nối" giữa các phòng ban).
empId, name, reportsToEmpId, deptId
100, John, NULL, 1
101, Mary, 100, 1
102, Carol, 100, 1
Vì vậy, những gì đang mong đợi như đầu ra ở đây? Và bạn chỉ cung cấp một chút thông tin mơ hồ cho một trong ba bảng trong truy vấn của bạn. –
Xin chào Sean, cảm ơn. Tôi đã cập nhật câu hỏi của mình. (Tôi đã thêm đầu ra dự kiến vào cuối câu hỏi của mình :-) –