mirror of
https://github.com/ada-dmitry/DB.mephi_ada.git
synced 2026-09-23 23:50:16 +00:00
added lab4
This commit is contained in:
@@ -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.
@@ -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.
@@ -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;
|
||||
@@ -0,0 +1 @@
|
||||
SELECT name FROM departments
|
||||
Reference in New Issue
Block a user