Ben doğrudan veya dolaylı Sumanta veya emp_id rapor tüm çalışanları almak istiyorumhiyerarşi seviyesi ile doğrudan ya da dolaylı olarak bir çalışanın rapor bütün çalışanın alın hiçbir
emp_id bigint,
reports_to bigint,
emp_name varchar(20),
Constraint [PK_Emp] Primary key (emp_id),
Constraint [FK_Emp] Foreign key (reports_to) references [MSS].[dbo].[Emp]([emp_id])
emp_id reports_to emp_name
------ ------ --------------
1 null Sumanta
2 1 Arpita
3 null Pradip
4 1 Sujon
5 2 Arpan
6 5 Jayanti
gibi çalışan tablosundaki (1) ve bunun gibi hiyerarşi seviyesi ile:
emp_id hierarchy_level emp_name
------ --------------- ----------
2 1 Arpita
4 1 Sujon
5 2 Arpan
6 3 Jayanti
Ben SQL için yeni ve adil kullanabilir veya nasıl bu sonuçları almak için ne bulamadık. Tablo değerli değişken ile saklı bir prosedür değer mi yoksa sadece bir Tsql select sorgusu yeterli olacaktır. Herhangi bir yardım en hoş geldiniz.
Tüm ben
Select Ep.emp_id,ep.emp_eame
From Emp as E
Inner Join Emp as Ep on Ep.reports_to=E.Emp_id
Where E.reports_to=1 or E.emp_id=1;
IS- yapmış ama bu 2 düzeye kadar doğru olduğunu ve hatta hierarchy_level oluşturmak olamaz hayır. Herhangi bir öneri, fikir, ............
Teşekkürler .... Andomar. CTE ile – Sukanta
'( Seç emp_id, emp_name, reports_to olarak 1 emp itibaren Seviye olarak nerede reports_to = 1 Birliği E İç olarak emp itibaren tüm Seç E.emp_id, E.emp_name, E.reports_to, Seviye + 1 E.reports_to adresindeki CTE'ye katılın = CTE.emp_id ) CTE'den seçim yapın; ' Sadece aradığımı tam olarak buldum .... @Andomar Teşekkürler – Sukanta
Wow, SqlFiddle hakkında bilgimiz yok. –