Özyinelemeli sorgu kullanmak istiyorum (cte
veya bir şey olabilir) burada yönetici raporunu çekmeye çalışıyorum - bir çalışanın adını girdiğim ve ilgili tüm hiyerarşiyi istiyorum çalışanların en üst düzey çalışanlarla başlaması (CEO ile başlayarak) ve daha sonra aşağı inmesi. ÖrneğinT-SQL- Yinelemeli sorgu çalışanı hiyerarşisi
: Tüm Çalışanlar Celia
(giriş parametresi) dahil MgrZ
rapor
CEO
Employees reporting to CEO , let's say MgrX
Employees reporting to MgrX- let's say MgrY
Employees reporting to MgrY - let's say MgrZ
:
gibi girdi çalışan adı Celia
, rapor bakmak gerekir.
ben kullanmaya çalışıyorum sorgusu:
with cte1 as
(
select
pa.PERSNBR
,pa.AUTHCD
,pu.VALUE
,hr.File#
,hr.[Payroll Name]
,hr.[Reports To File#]
,hr.[Reports To Name]
,hr.[EMC#]
,hr.[EMC Name]
from
[DNA_Staging].[dbo].[PERSAUTH] pa
join [DNA_Staging].[dbo].[PERSEMPL] pe
on pa.PERSNBR = pe.PERSNBR
join [DNA_Staging].[dbo].[PERSUSERFIELD] pu
on pe.PERSNBR = pu.PERSNBR
and pu.USERFIELDCD = 'EFNR'
and GETDATE() < isnull(pe.inactivedate,getdate()+1)
join [HR_Staging].[dbo].[HR_EmployeeHierarchyStaging] hr
on pu.VALUE = substring(hr.File#,2,6)
or pu.VALUE = substring(hr.File#,3,6)
),
-- find all the data for input payroll name in the parameter
cte2 as (select *
FROM cte1 where [Payroll Name] = 'Acain, Celia T'),
okuyunuz [bu] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a -public-forum /) sorunuzun iyileştirilmesiyle ilgili bazı ipuçları için. İpucu: Bir soru içermelidir. – HABO