Здравствуйте помогите пожалуйста решить пару задачек, сам пытался решить, но знаний не хватает..
1. Отобразить номер(а)б названия отдела(ов), в которых работает наибольшее число сотрудников среди всех отделов. В третьем столбце расчитать процент сотрудников от общего числа работников.
select отдел.номер_отдела, отдел.name, aaa*100/
(select counts(*) from сотрудник)
from отдел, сотрудник, select counts(сотрудник.номер_отдела))
from сотрудник ааа
where aaa=(select max(count(сотрудник.номер_отдела)) from сотрудник) and сотрудник.номер_отдела=отдел.номер_отдела
2. Вывести название стран, в которых наименьшее число клиентов с "хорошим" кредитным рейтингом. Второй столбец озаглавить "Количество клиентов".
select клиент.страна, count (клиент.id) as "количество клиентов"
from клиент
where count(клиент.id)=(select count(клиент.id)
from клиент
where кредитный_рейтинг like "хороший");
3. Расчитать процент от общего числа заказов, в которых дата заказа и дата доставки были в один и тот же месяц.
4. Вывести названия отделов с сотрудниками, получившими комиссионные, и расчитать общую зарплату этих сотрудников с комиссионными в 1992 году.
select номер_отдела from сотрудник, count(зарплата + комиссионные)
where комиссионные >=1
5. Расчитать количество клиентов для отделов, в которых работают однофамильцы. Вывести номер отдела и полученное количество в одном столбце через знак "дефис".
select номер_отдела, count(фамилия) from сотрудник
where сотрудник in
(select фамилия from сотрудник
group by фамилия having count(*)>1);
Отредактированно studsql (26.09.2009 13:17:47)