2013-02-23 2 views
2

У меня есть стол с колонками EMPLOYEEID, EMPLOYEENAME, MANAGERID.Запрос по следующему сценарию

MANGERID из колонки EMPLOYEEID. НЕКОТОРЫЕ EMPLOYEEID не имеют manangerid (то есть NULL). Теперь мне нужен вывод из запроса, чтобы он возвращал EMPLOYEENAME и соответствующий MANGERNAME.

Как это можно сделать?

Я пробовал самостоятельно, но не смог получить желаемый результат.

+1

Почему вы продолжаете добавив 'plsql' тег? Это тег для 'PL/SQL' - процедурные расширения языка SQL, предоставляемые ** Oracle ** - это не имеет ничего общего с ** Microsoft ** SQL Server ... –

+0

@marc_s сделать то же самое в PL/sql по-разному? Это не полезно для ребёнок-оракулов? – F11

+0

Вам тоже это нужно для Oracle (PL/SQL)? T-SQL и PL/SQL ** не ** то же самое - есть различия - так что если вам действительно нужны оба - сообщите нам об этом. В противном случае вы получите конкретные решения T-SQL (или PL/SQL) .... –

ответ

2

Вам потребуется автообъединение с LEFT JOIN, чтобы получить те, которые не менеджер:

SELECT 
    e.EMPLOYEEID, 
    e.EMPLOYEENAME, 
    m.EmployeeName AS ManagerName 
FROM Employees AS e 
LEFT JOIN Employees AS m ON e.ManagerId = m.EmployeeID; 

SQL Fiddle Demo

Смежные вопросы