-3
我想用遞歸查詢(也可以是cte
或任何東西),在那裏我試圖拉執行報告 - 在這裏我輸入一個員工的姓名,我想所有與層次員工從最高層的員工(從首席執行官開始)開始,然後走下坡路。T-SQL的遞歸查詢 - 員工層次
例如:
如果我輸入了員工姓名Celia
,報告應該是這樣的:
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
全體員工以MgrZ
報告包括Celia
(輸入參數)。
查詢我試圖使用方法:
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'),
請仔細閱讀[這](http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a -public-forum /)提供一些關於改善問題的提示。提示:它應該包括一個問題。 – HABO