Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

БД / 5

.txt
Скачиваний:
16
Добавлен:
18.02.2017
Размер:
2.18 Кб
Скачать
1.Вывести отсортированный список проектов.
SELECT*
FROM PROJECT
ORDER BY ID_PROJECT

2.Вывести всех сотрудников отделов 1 и 2, не являющихся стажерами, отсортировав их по возрасту.
SELECT EMP.*, DEP.ID_Dep, JOB.Job
FROM JOB INNER JOIN (DEP INNER JOIN EMP ON DEP.ID_Dep = EMP.ID_Dep) ON JOB.ID_Job = EMP.ID_Job
WHERE (((DEP.ID_Dep)=1 Or (DEP.ID_Dep)=2) AND ((JOB.Job)!='стажер'));

3.Вывести сотрудников, работающих в техническом отделе, участвующих в проектах и получающих зарплату выше 2000.
SELECT EMP.*, EMP.Salary, DEP.Department, PROJECT.Project
FROM PROJECT, DEP INNER JOIN EMP ON DEP.ID_Dep = EMP.ID_Dep
WHERE (((EMP.Salary)>2000) AND ((DEP.Department)=технический отдел') AND ((PROJECT.Project)!='NULL'));

4.Вывести список проектов и количество сотрудников, в них занятых.
SELECT PROJECT.Project, Count (*)
FROM PROJECT INNER JOIN PROJECT_EMP ON PROJECT_EMP.ID_Project=Project.ID_Project
GROUP BY PROJECT_EMP.ID_Project,PROJECT.Project;

5.Вывести имена сотрудников, зарплата которых не соответствует категориям их должностей.
SELECT EMP.*, EMP.Salary
FROM SALGRADE INNER JOIN (JOB INNER JOIN EMP ON JOB.ID_Job = EMP.ID_Job) ON SALGRADE.Grade = JOB.Grade
WHERE (("Salary"<"Losal")) OR (("Salary">"Hisal"));

6.Вывести название отдела, в котором работает сотрудник с минимальным стажем.
SELECT Department
FROM DEP
WHERE ID_Dep = (SELECT ID_Dep FROM EMP WHERE ID_Emp= (SELECT ID_Emp FROM EMP WHERE Hire_date =(SELECT min(Hire_date) FROM EMP)));

7.Вывести названия проектов, в которых занят самый высокооплачиваемый сотрудник.
SELECT PROJECT
FROM Project
WHERE ID_Project = (SELECT ID_Project FROM EMP WHERE ID_Emp= (SELECT ID_Emp FROM EMP WHERE SALARY =(SELECT max(SALARY) FROM EMP)));

8.Вывести должность, которую занимает максимальное количество сотрудников, и их среднюю зарплату.
SELECT*
FROM (SELECT JOB.ID_Job,JOB.JOB,AVG(EMP.Salary) AS A , Count (*) AS C
FROM JOB INNER JOIN EMP ON JOB.ID_JOB=EMP.ID_Job
GROUP BY JOB.ID_Job,JOB.Job) AS t1
WHERE t1.C =

(SELECT MAX(t.C)
From
(SELECT JOB.ID_Job, JOB.JOB, Count (*) AS C
FROM JOB INNER JOIN EMP ON JOB.ID_JOB=EMP.ID_Job
GROUP BY JOB.ID_Job,JOB.Job) AS t);
Соседние файлы в папке БД
  • #
    18.02.2017124.07 Кб371.docx
  • #
    18.02.20171.42 Кб171.txt
  • #
    18.02.20171.81 Кб162.txt
  • #
    18.02.20171.64 Кб163.txt
  • #
    18.02.20171.74 Кб164.txt
  • #
    18.02.20172.18 Кб165.txt
  • #
    18.02.2017724.37 Кб22BD_12_1.ppsx
  • #
    18.02.2017954.68 Кб20BD_12_2.ppsx
  • #
    18.02.2017784.37 Кб16BD_12_3.ppsx
  • #
    18.02.2017168.84 Кб21BD_12_4.ppsx
  • #
    18.02.2017813.34 Кб17BD_12_5.ppsx