Şu anda, özyinelemeli örneklerin gösterdiği işe benzer bir çalışan çizelgesinden bir çalışan hiyerarşisi oluşturmak için bir CTE sorgusu yürütüyorum. Sıkıştığım yer ise, tek bir çalışan için sorgulamaya çalışıyorum ve üstündeki hiyerarşiyi alıyorum. Ben şaşırıpSQL CTE Özyineleme: Ana Kayıtları Geri Alma
with employeeMaster as (
select p.EmployeeID, p.MgrID, p.Name
from Employees p
where p.MgrID is null
union all
select c.EmployeeID, c.MgrID, c.Name
from employeeMaster cte inner join Employees c on c.MgrID = cte.EmployeeID
)
select * from employeeMaster
geçerli:
Employees
===========================================================================
EmployeeID MgrID Name
1 null Joe
2 1 John
3 2 Rob
4 2 Eric
aşağıdaki beni yukarıdan aşağıya hiyerarşi görüntülemesini sağlayan SQL geçerli: ile Aşağıda işe çalışıyorum tablonun bir örnektir En düşük seviye çalışanı olan Rob veya Eric'i nasıl sorgulayacağımı ve onun üzerindeki hiyerarşiyi Joe> John> Eric'den nasıl döndürebileceğimi anlayamıyorum. Öyle görünüyor ki bu kolay olmalı ama benim için hayatımı göremiyorum.
Tablo örneğimde, Eric'i sorgulamak ve kayıtlarını ve üstündeki iki kişiyi gösteren üç kayıt içeren bir kayıt kümesi döndürmek istiyorum. Son hedef, herhangi bir çalışanın bir yetenek sorgusu olmasını ve çalışanın en iyi şekilde komut zincirini görmesini sağlamaktır. – Tehrab
Size Eric ve yöneticilerini vermek için düzenledim. –
Her zaman basit şeyler. Cevaplandı olarak işaretlendi. – Tehrab