Отделу hr необходим отчет в котором выводятся фамилии и даты найма всех служащих нанятых в 1994 г
Перейти к содержимому

Отделу hr необходим отчет в котором выводятся фамилии и даты найма всех служащих нанятых в 1994 г

  • автор:

Лабораторная работа 1

Составьте запрос для вывода неповторяющихся должностей из таблицы EMPLOYEES.

select distinct job_id from EMPLOYEES

Employee and Title

Создайте запрос для вывода всех данных из таблицы EMPLOYEES. Разделите столбцы запятыми. Назовите столбец THE_OUTPUT select EMPLOYEE_ID||’,’|| FIRST_NAME ||’,’|| LAST_NAME ||’,’|| EMAIL ||’,’|| PHONE_NUMBER ||’,’|| HIRE_DATE ||’,’|| JOB_ID ||’,’|| SALARY ||’,’|| COMMISSION_PCT ||’,’|| MANAGER_ID ||’,’|| DEPARTMENT_ID as «THE_OUTPUT» from EMPLOYEES

Выборка данных и изменение последовательности вывода строк

Ограничение количества возвращаемых строк с помощью предложения WHERE

Сортировка строк с помощью предложения ORDER BY

Создайте запрос для вывода имени и заработной платы служащих, зарабатывающих более $12000. Сохраните команду SQL в файле lab2_1.sql. выполните запрос. SELECT first_name, salary FROM employees where salary>12000

Создайте запрос для вывода фамилии и номера отдела служащего под номером 176

SELECT last_name, department_id FROM employees where employee_id=176

DEPARTMENT_ID

Измените файл lab2_1.sql и выведите фамилии и оклады всех служащих, чей оклад не входит в диапазон от $5000 до $12000. сохраните команду SQL в файле lab2_3.sql. SELECT first_name, salary FROM employees where salary>12000 or salary<5000

Выведите фамилию, идентификатор должности и дату начала работы всех служащих, нанятых в период с 20 февраля 1998 по 1 мая 1998 г. Отсортируйте данные в порядке возрастания даты найма. SELECT last_name, job_id, hire_date FROM employees where hire_date>=’20-FEB-1998′ and hire_date<=’1-MAY-1998′ Order by hire_date

Выведите фамилию и номер отдела всех служащих из отделов 20 и 50. Отсортируйте данные по фамилиям в алфавитном порядке. SELECT LAST_NAME, DEPARTMENT_ID FROM employees where department_id in (20,50) Order by LAST_NAME

DEPARTMENT_ID

Измените файл lab2_3.sql для вывода фамилий и окладов служащих отделов 20 и 50, зарабатывающих от $5000 до $12000. Назовите столбцы Employee и Monthly Salary, соответственно. Вновь сохраните команду SQL в файле lab2_6.sql. Выполните запрос. SELECT first_name as «Employee», salary as «Monthly Salary» FROM employees where salary>5000 and salary<12000 and department_id in (20,50)

Monthly Salary

Выведите фамилию и дату найма всех служащих, нанятых в 1994 г. SELECT last_name, hire_date FROM employees where hire_date>’31-DEC-93′ and hire_date<‘1-JAN-95’

Выведите фамилии и должности всех служащих, не имеющих менеджера. SELECT last_name, job_id FROM employees where manager_id is null

Выведите фамилию, и комиссионные всех служащих, зарабатывающих комиссионные. Отсортируйте данные в порядке убывания окладов и комиссионных. SELECT LAST_NAME, SALARY, COMMISSION_PCT FROM employees where commission_pct is not null Order by commission_pct desc

Практическое занятие 2

1. Вследствие проблем финансирования отделу HR необходим отчет, в котором показываются фамилии и оклады служащих, получающих более $12,000.

Создайте запрос для вывода фамилии и номера отдела служащего под номером 176

Отделу HR необходимы данные о высокооплачиваемых и низкооплачиваемых сотрудниках. Выведите фамилии и оклады всех служащих, чей оклад не входит в диапазон от $5000 до $12000.

Создайте отчет для вывода фамилии, идентификатора должности и даты начала работы всех служащих, с фамилиями Matos и Taylor. Отсортируйте данные в порядке возрастания даты найма.

Выведите фамилию и номер отдела всех служащих из отделов 20 и 50. Отсортируйте данные по фамилиям в алфавитном порядке.

Вывести фамилии и оклады служащих отделов 20 и 50, зарабатывающих от $5000 до $12,000. Назовите столбцы Employee и Monthly Salary, соответственно.

Отделу HR необходим отчет, в котором выводятся фамилии и даты найма всех служащих, нанятых в 2004 г

Создайте отчет, содержащий фамилии и должности всех служащих, не имеющих менеджера.

Создайте отчет для вывода фамилий, окладов и комиссионные всех служащих, зарабатывающих комиссионные. Отсортируйте данные в порядке убывания окладов и комиссионных.

Сотрудникам отдела HR требуются запросы с более гибкими возможностями. Так необходим отчет, в котором показываются фамилии и оклады служащих, зарабатывающих больше некоторой величины, вводимой пользователем после приглашения. (Можете изменить запрос, созданный при выполнении задания 1.) Запишите запрос в файл lab_02_10.sql. Ниже приводятся результаты, которые получаются, когда после приглашения вводится 12000

Отделу HR необходимы отчеты по каждому менеджеру. Создайте отчет, при выполнении которого запрашивается идентификатор менеджера (manager_ID) и выводятся следующие сведения о подчиняющихся ему сотрудниках: табельный номер, фамилия и номер отдела. Должна быть предоставлена возможность отсортировать результаты на основе заданного столбца.

Ошибка в запросе

Всем здравствуйте. Помогите пожалуйста исправить ошибку в запросах. Задача:
1. Отделу HR необходим отчет, в котором выводится следующее: — фамилии и отделы всех сотрудников из таблицы EMPLOYEES, независимо от того, относятся ли они к какому-то отделу или нет; — номера и наименования всех отделов из таблицы DEPARTMENTS, независимо от того, есть ли в них сотрудники или нет.
Колонки отчета назвать "Last Name", "Dept Employye", "Dept Num", "Dept Name"

Ошибка:
При выполнении запроса возникла синтаксическая ошибка ORACLE ORA-01790: expression must have same datatype as corresponding expression

2. Вывести названия колонок и тип данных для таблицы DEPARTMENTS.

Ответ сервера:
Структура результата не соответствует требованиям задачи

УД Select. Команда select sql по дисциплине Управление данными

Напишите запрос для вывода номера каждого менеджера, имеющего подчинѐнных, и заработную плату самого низкооплачиваемого из его подчинѐнных. Исключите менеджеров для которых неизвестны их менеджеры. Исключите все группы, где минимальный оклад составляет менее $6000. Произведите упорядочение по убыванию минимальной заработной платы

SELECT manager_id, min(salary) AS min_salary

WHERE manager_id IS NOT NULL

GROUP BY manager_id

HAVING (min(salary) > 6000);

  1. Выборка данных из нескольких таблиц

SELECT employees.first_name, employees.last_name, departments.department_name

FROM employees LEFT JOIN departments ON departments.department_id = employees.department_id;

Напишите запрос для вывода должности (названия) и количества служащих, занимающих каждую должность

SELECT jobs.job_title, count(employees.job_id) as counts

FROM employees LEFT JOIN jobs ON employees.job_id = jobs.job_id

GROUP BY jobs.job_title;

Напишите запрос для вывода названия отдела, названия должности в этом отделе и средней заработной платы указанной должности в этом отделе. Используйте псевдонимы и упорядочение по названию отдела

SELECT departments.department_name as «Отдел», jobs.job_title as «Должность», round(avg(employees.salary)) as «Средняя ЗП»

FROM employees LEFT JOIN jobs ON employees.job_id = jobs.job_id

LEFT JOIN departments ON employees.department_id = departments.department_id

WHERE jobs.job_id is not null AND departments.department_id is not null

GROUP BY jobs.job_title, departments.department_name

ORDER BY departments.department_name;

Укажите отдел и должности в нем, для которых средняя заработная плата больше 8000. Используйте псевдонимы и упорядочение по названию отдела

SELECT departments.department_name as «Отдел», jobs.job_title as «Должность»

FROM employees LEFT JOIN jobs ON employees.job_id = jobs.job_id

LEFT JOIN departments ON employees.department_id = departments.department_id

WHERE jobs.job_id is not null AND departments.department_id is not null

GROUP BY jobs.job_title, departments.department_name

HAVING round(avg(employees.salary)) >= 8000;

Напишите запрос для вывода фамилии, должности, номера отдела и названия отдела всех служащих, работающих в городе Toronto

SELECT employees.last_name as «Фамилия», departments.department_id as «Номер отдела», departments.department_name as «Отдел», jobs.job_title as «Должность»

FROM employees LEFT JOIN jobs ON employees.job_id = jobs.job_id

LEFT JOIN departments ON employees.department_id = departments.department_id

LEFT JOIN locations ON locations.location_id = departments.location_id

WHERE jobs.job_id is not null AND departments.department_id is not null

AND locations.city = ‘Toronto’;

  1. Соединение таблиц с собой

SELECT t2.last_name as «Фам_начальника», t2.salary as «ЗП_начальника», t1.last_name as «Фам_служащего», t1.salary as «ЗП_служащего»

FROM employees t1 JOIN employees t2 ON t1.manager_id = t2.employee_id

WHERE t1.manager_id is not null

ORDER BY t2.last_name;

По всем служащим, нанятым раньше своих менеджеров, выведите фамилии и даты найма самих служащих, а также фамилии и даты найма их менеджеров. Назовите столбцы Employee, Date employee, Manager и Date manager. Произведите упорядочение по фамилии менеджеров

SELECT t2.last_name as «Manager», t2.hire_date as » Date manager», t1.last_name as «Employee», t1.hire_date as «Date employee»

FROM employees t1 JOIN employees t2 ON t1.manager_id = t2.employee_id

WHERE t1.manager_id is not null

AND t1.hire_date ‘Zlotkey’;

Создайте запрос для вывода номеров и фамилий всех служащих, оклад которых выше среднего. Отсортируйте данные в порядке увеличения окладов

SELECT employee_id, last_name

WHERE salary > (SELECT avg(salary) FROM employees)

ORDER BY salary;

Покажите номер отдела с наивысшей средней заработной платой и наименьший оклад работающего в нѐм сотрудника

(SELECT department_id FROM employees WHERE salary =

(SELECT max(avg(salary)) FROM employees GROUP BY(salary)))

GROUP BY department_id;

Выведите фамилию, название отдела и название города, в котором он находится, для служащих, зарабатывающих комиссионные

SElECT employees.last_name, departments.department_name, locations.city

LEFT JOIN departments ON departments.department_id = employees.department_id

LEFT JOIN locations ON departments.location_id=locations.location_id

WHERE commission_pct is not null;

Создайте запрос для вывода фамилий и дат найма всех служащих, нанятых после Davies

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *