added lab4

This commit is contained in:
ada-dmitry
2023-10-23 15:35:35 +03:00
parent 81c2f6085e
commit 20a2c3a512
6 changed files with 108 additions and 7 deletions
@@ -3,7 +3,7 @@
/* Задание 1 */
SELECT
(first_name || ' ' || last_name) AS "ФИО",
salary AS "ОКЛАД",
to_char(salary, '9999999D99') AS "ОКЛАД",
trunc(salary*0.87) AS "Оклад минус подоходный"
FROM employees;
@@ -12,10 +12,10 @@ SELECT
first_name AS "Имя",
last_name AS "Фамилия",
job_id AS "Должность",
hire_date AS "Дата приема на работу"
to_char(hire_date, 'DD.MM.YYYY') AS "Дата приема на работу"
FROM employees
WHERE job_id IN ('AD_PRES', 'AD_VP', 'AD_ASST')
AND hire_date BETWEEN SYMMETRIC
OR hire_date BETWEEN
'1995-01-01' AND '2023-01-01'
LIMIT 5;
@@ -23,11 +23,11 @@ LIMIT 5;
SELECT
first_name AS "Имя",
last_name AS "Фамилия",
job_id AS "Должность",
to_char(salary, '99999D99') AS "Оклад",
to_char(hire_date, 'DD.MM.YYYY') AS "Дата приема на работу",
EXTRACT(month from now()) + EXTRACT(year from now())*12
- EXTRACT(month from hire_date) - EXTRACT(year from hire_date)*12
EXTRACT(month from age(now(), hire_date))
+ EXTRACT(year from age(now(), hire_date))*12
as "Проработано месяцев"
FROM employees;
Binary file not shown.
+63
View File
@@ -0,0 +1,63 @@
/* Лабораторная работа №3 | Вариант 4 | Антипенко, Дробышевский */
SELECT * FROM departments;
SELECT * FROM employees;
SELECT * FROM jobs;
/* Задание 1 */
SELECT
e.first_name AS "FIRST_NAME",
e.last_name AS "LAST_NAME",
d.department_name AS "DEPARTMENT_NAME"
FROM employees e, departments d
WHERE e.department_id = d.department_id AND d.department_name IN ('IT', 'Sales');
/* Задание 2 */
SELECT
e.first_name AS "FIRST_NAME",
e.last_name AS "LAST_NAME",
trunc(e.salary) AS "SALARY",
d.department_name AS "DEPARTMENT_NAME",
j.job_title AS "JOB_TITLE"
FROM employees e, jobs j, departments d
WHERE e.department_id = d.department_id AND e.job_id = j.job_id
AND e.salary > 10000
ORDER BY e.salary ASC;
/* Задание 3 */
SELECT
e.first_name AS "Имя",
e.last_name AS "Фамилия",
to_char(e.salary, '99999D99') AS "Оклад",
trunc(j.min_salary) AS "Мин.оклад"
FROM employees e, jobs j
WHERE e.job_id = j.job_id AND j.min_salary*1.2 >= e.salary;
/* Задание 4 */
SELECT
last_name AS "Фамилия_Р",
first_name AS "Имя",
to_char(salary, '99999D99') AS "Оклад"
FROM employees
WHERE salary > (
SELECT
AVG(salary)
FROM employees
)
ORDER BY salary ASC;
/* Задание 5 */
SELECT
e.first_name AS "Имя",
e.last_name AS "Фамилия",
e.job_id AS "Должность",
to_char(e.salary, '999999D99') AS "Оклад"
FROM employees e
/*WHERE e.job_id = j.job_id AND e.salary = j.max_salary*/
WHERE e.salary, e.job_id IN (
SELECT
max_salary,
job_id
FROM jobs
);
Binary file not shown.
+37
View File
@@ -0,0 +1,37 @@
CREATE table staff(
id integer primary key,
name varchar(64) NOT NULL,
department varchar(64) NOT NULL
);
CREATE SEQUENCE staff_id_seq
START WITH 12
CYCLE
INCREMENT BY 8
CACHE 100;
INSERT INTO staff VALUES
(nextval('staff_id_seq'), 'Ivan Makarenko', 'Director');
INSERT INTO staff
(SELECT nextval('staff_id_seq'), last_name, department_name
FROM employees e JOIN departments d ON e.department_id = d.department_id);
UPDATE staff SET department = 'Innovations department'
WHERE id < 40;
DELETE FROM staff
WHERE name ILIKE('%K%');
WITH RECURSIVE tmp AS (
SELECT employee_id, first_name, last_name, manager_id, 1 AS level
FROM employees
WHERE manager_id = 100
UNION ALL
SELECT e.employee_id, e.first_name, e.last_name, e.manager_id, t.level + 1
FROM employees e
JOIN tmp t ON e.manager_id = t.employee_id
)
SELECT first_name, last_name
FROM tmp;