2011-06-28 55 views
-1

我遇到了一個SQL問題,想知道怎麼做。需要SQL查詢來解決這個問題

的問題是: -

在SQL Server中的表名爲 MyOrganisation有兩列 - 員工,Reporting_to。

它顯示哪個員工向哪個員工報告。

我要找回它包含兩列一個結果 -

一個 - 存儲僱員的姓名和其他列存儲其中的第一列中的員工報告員工的姓名。

請注意,存儲員工報告頭的名稱必須根據員工的層次結構(如組織負責人)的順序必須位於第一位。

+0

它不是功課。我遇到了它,並試圖解決它,但cud沒有找到出路。因此在這裏尋求幫助。 – vatspoo

+0

試過'group by'? –

+1

應該有一個「noob」標籤:) – Bohemian

回答

3
select 
    mo1.Employee as boss, 
    mo1.Employee as underling 
from MyOrganisation mo1 
join MyOrganisation mo2 on mo2.Reporting_to = mo1.Employee 

請不要貪吃勺子。我很無聊!

+0

它不工作。請檢查我編輯的問題。 – vatspoo

1

例如,我們有僱員表包含僱員,員工姓名和其他數據

select e1.Name As Employee, e2.Name As Director 
from MyOrganisation mo 
join Employee e1 on mo.Employee = e1.EmployeeId 
join Employee e2 on mo.Reporting_To = e2.EmployeeId 
+0

使用此方法,您必須爲層次結構中的每個潛在級別添加進一步的聯接,對嗎? – onedaywhen

+0

我認爲名稱與MyOrgisation不在同一張表中。如果名稱位於同一個表格(MyOrginisation)中,則@Bohemians回答的結果會更好地匹配您的案例 – niktrs