Я попытался создать новую тему, но не нашел в темах ничего подобного. Короче есть у база данных, созданная в MS SQL Server Management Studio. Есть академия, в которой есть учителя, каждый из которых может быть деканом, заведующим, ассистентом и так далее. В таблице с учителями есть фамилии, имена и так далее. А в остальных(Деканы, ассистенты, заведующие и т.д.) только Id учителя. Так вот задание такое:
Вывести полные имена преподавателей в следующем по-
рядке: деканы факультетов, заведующие кафедрами, пре-
подаватели, кураторы, ассистенты
Я вот написал что-то, но это полная чушь:
select Teachers.Name+' '+Teachers.Surname as [Dean],
Teachers.Name+' '+Teachers.Surname as [Head],
Teachers.Name+' '+Teachers.Surname as [Teacher],
Teachers.Name+' '+Teachers.Surname as [Curator],
Teachers.Name+' '+Teachers.Surname as [Assistant]
from Teachers join Deans on Teachers.Id = Deans.TeacherId
join Heads on Teachers.Id = Heads.TeacherId
join Curators on Teachers.Id = Curators.TeacherId
join Assistants on Teachers.Id = Assistants.TeacherId
group by Teachers.Name, Teachers.Surname
А структура таблиц именно такая нужна? По идее ж тут один человек может сразу несколько ролей исполнять. А если не может, то непонятно зачем таблицы, хватило бы одного поля )
SELECT U.Name,U.Surnamme
FROM (
SELECT T.Name,T.Surnamme,1 AS Kind
FROM Deans D LEFT JOIN Teachers T ON D.TeacherId=T.Id
UNION
SELECT T.Name,T.Surnamme,2 AS Kind
FROM Heads H LEFT JOIN Teachers T ON H.TeacherId=T.Id
UNION
SELECT T.Name,T.Surnamme,3 AS Kind
FROM Lectures L LEFT JOIN Teachers T ON L.TeacherId=T.Id
UNION
SELECT T.Name,T.Surnamme,4 AS Kind
FROM Curators C LEFT JOIN Teachers T ON C.TeacherId=T.Id
UNION
SELECT T.Name,T.Surnamme,5 AS Kind
FROM Assistans A LEFT JOIN Teachers T ON A.TeacherId=T.Id) U
ORDER BY U.Kind,U.Name,U.Surnamme
Поле Kind вычисляемое и числовое. Добавь аналогично в каждый подзапрос символьное вычисляемое поле, например ‘декан’ AS Position. Аналогично и в другие. И вытащи Position во внешний запрос