我在我的工具中使用了2個表。TSQL遞歸查詢
一個是員工數據庫,另一個是包含每個直接報告人數的直接報告數的表。
以下是我已經設置了樣本表: http://sqlfiddle.com/#!6/0b414/3
下面是一個簡單的查詢我的工作。但是,我需要做的是將記錄插入到另一個表中,並記錄每個人的指示數。
如果他們沒有直接的,他們不會被添加到表中。
;WITH employees_CTE (FirstName, LastName, QID, Email, SupQID, Title) AS
(
SELECT FirstName,
LastName,
QID,
Email,
SupQID,
Title
FROM employees E
WHERE QID = 'Q12345'
UNION ALL
SELECT E.FirstName,
E.LastName,
E.QID,
E.Email,
E.SupQID,
E.Title
FROM employees E
INNER JOIN employees_CTE AS E2 ON E.SupQID = E2.QID
--Some type of INSERT statement here if the number of people reporting to you are greater than zero.
)
CTE就我所能得到的。我被困在搞清楚如何從CTE中獲得計數,所以我知道是否將它插入到table2中。
直接報告是某人的SupQID是您自己的。 supQID字段是員工的主管(直接)。
任何想法?
編輯:需要遞歸執行此操作而不是通過連接執行此操作的原因是爲了節省空間:並非所有部門都需要此類跟蹤,並且能夠說「通過X報告的任何人」會留下選項如果有需要的話,可以打開將來打開它,或者增加部門。
SQL小提琴很好,但您至少可以設置它,使字段名稱與示例查詢匹配。 – 2014-10-05 20:06:23
對不起,修正:http://sqlfiddle.com/#!6/ff315 – SBB 2014-10-05 20:08:18