Vasyok
Просветленный
(20090)
5 лет назад
надо выбирать отдел и заходить с ним в остальные таблицы, это кореллированый подзапрос
select D.Otdel, top 3 temp.summ
from Dep D
inner join (select * from Personal P inner join Sal S on P.Id=S.Personal_id where P.Dep_id=D.Id) temp
Group by D.Otdel
order by D.Otdel
DiПрофи (541)
5 лет назад
Спасибо за ответ! D.Otdel это Dep.Otdel? P и S и Dep D псевдонимы?
Dep – таблица отделов:
Id – номер
Otdel – отделs
Personal – таблица сотрудники:
Id – номер
Fio – Фамилия сотрудника
Dep_id – отдел (ссылка на Dep.Id)
Sal – таблица продаж:
Id – номер
Personal_id – менеджер (ссылка на Personal.Id)
Summa– сумма продажи
Вывожу запрос следующий. Выдает полный список сотрудников и суммы продаж. Как можно выделить только двух лучших из всего списка. И выделить допутим по два лучших продажника по каждому отдела?
select Otdel, Fio,sum(Summa)
from Sal, Personal, Dep
where Personal.id = Sales.Personal_id and Dep.id=Dep_id
group by Fio, Otdel
order by sum(Summa) desc