
- •Дана символьная строка, в которой отдельные слова разделены любым количеством пробелов.
- •//Условие задачи:
- •Определить список последовательностей подчиненности от преподавателей, не имеющих начальника, до преподавателей, не имеющих подчиненных. Результат представить в виде:
- •Посчитать кол-во 29.02 между двумя заданными датами
- •Показать накопленную сумму сотрудников по их отделам.
- •Вывести все даты за 2011 год и соответствующие дни недели без использования иерархических запросов и Model.
- •В произвольной строке, состоящей из символьных элементов, разделенных запятыми, отсортировать элементы по алфавиту. Например, символьную строку
- •Определить временной интервал между заданной и текущей датами. Результат вывести в виде: ## лет ## мес ## дней, где # обозначает цифру.
- •Вывести фамилии сотрудников, начальники которых работают в другой стране.В результат вывести:
- •Для таблиц схемы, имеющих индексы вывести:
- •Определить дату начала ближайшего к заданной дате Уимблдонского турнира, который начинается за шесть недель до первого понедельника августа
- •Для каждой таблицы схемы вывести:
- •Определить сколько лет, месяцев и дней осталось до президентских выборов в сша, которые проводятся по високосным годам в первый понедельник после первого вторника ноября.
- •Дана таблица из двух столбцов: 1 - строка, 2 – число. Требуется написать запрос, в результате
- •Написать запрос, выдающий отчёт о суммарных выплатах сотрудникам, непосредственно
- •Определить временной интервал между датами. Результат вывести в виде: ## лет ## мес ## дней, где # обозначает цифру.
- •Вывести фамилии всех сотрудников через запятую столько раз сколько символов в их фамилии
- •Для каждой таблицы схемы вывести:
- •Создать запрос для определения сумм зарплат сотрудников от сотрудников, не имеющих менеджеров, до сотрудников, не имеющих подчиненных.
- •Выборы президента сша
- •Плотный ранг
- •Для всех связей между таблицами схемы вывести:
- •Из заданных наборов символов исключить те наборы символов, которые отличаются только порядком. Например, заданы наборы:
- •В названии отдела вывести только второе слово, если название состоит из двух и более слов, иначе вывести первое слово.
- •Создать запрос для определения списка городов, в которых расположены департаменты, суммарная заработная плата в которых выше средней суммарной заработной платы в департаментах этого города.
- •Имеется таблица:
- •Определить сумму цифр в произвольной символьной строке.
- •Для каждой таблицы схемы вывести:
- •Для каждой таблицы схемы вывести:
- •Сформировать отчёт, содержащий номер отдела, название отдела, имена и фамилии сотрудников, а также их зарплату в виде:
- •Условия нет
- •Условия нет
- •Вывести фамилии сотрудников, получающих зарплату выше средней в отделе, в котором они работают.
- •Не помню задание, похоже на костяна, мишаню и лену
- •Для всех таблиц схемы вывести:
- •Задания нет
- •Сумма цифр в строке
- •Создать запрос для вывода фамилий, последних должностей и дат приема на работу сотрудников, информация о работе
- •"Определить ближайший к заданной дате год, когда 29 февраля придется на воскресенье. "
- •В таблицу записана информация об удачных и неудачных попытках подключения к базе данных.
Создать запрос для определения сумм зарплат сотрудников от сотрудников, не имеющих менеджеров, до сотрудников, не имеющих подчиненных.
WITH t AS (
SELECT rownum rn, SYS_CONNECT_BY_PATH(salary,'+') || '+' sal, LTRIM(SYS_CONNECT_BY_PATH(last_name,'->'),'->') res
FROM employees
WHERE employee_id NOT IN
(SELECT distinct manager_id
FROM employees
WHERE manager_id IS NOT NULL)
START WITH manager_id IS NULL
CONNECT BY PRIOR employee_id=manager_id)
SELECT (SELECT SUM(salary)
FROM (SELECT distinct salary FROM employees)
WHERE sal LIKE '%+'||salary||'+%') ss, res
FROM t;
Выборы президента сша
SELECT (CASE
WHEN mod(to_number(to_char(to_date('&&pdate'),'YYYY')),4)=0
THEN
CASE
WHEN to_date('&pdate')<= to_date(Concat('01.11.',to_char(to_date('&pdate'),'YYYY')))
THEN NEXT_DAY(next_day(Concat('31.10.',to_char(to_date('&pdate'),'YYYY')),2),1)
ELSE NEXT_DAY(next_day(Concat('31.10.',to_char(to_date('&pdate'),'YYYY')+4),2),1)
END
WHEN mod((to_number(to_char(to_date('&pdate'),'YYYY'))+1),4)=0
THEN
CASE
WHEN (to_date('&pdate')+365)<= Concat('01.11.',to_char(to_date('&pdate'),'YYYY')+1)
THEN NEXT_DAY(next_day(Concat('31.10.',to_char(to_date('&pdate'),'YYYY')+1),2),1)
ELSE NEXT_DAY(next_day(Concat('31.10.',to_char(to_date('&pdate'),'YYYY')+5),2),1)
END
WHEN mod((to_number(to_char(to_date('&pdate'),'YYYY'))+2),4)=0
THEN
CASE
WHEN (to_date('&pdate')+365*2)<= Concat('01.11.',to_char(to_date('&pdate'),'YYYY')+2)
THEN NEXT_DAY(next_day(Concat('31.10.',to_char(to_date('&pdate'),'YYYY')+2),2),1)
ELSE NEXT_DAY(next_day(Concat('31.10.',to_char(to_date('&pdate'),'YYYY')+6),2),1)
END
WHEN mod((to_number(to_char(to_date('&pdate'),'YYYY'))+3),4)=0
THEN
CASE
WHEN (to_date('&pdate')+365*3)<= Concat('01.11.',to_char(to_date('&pdate'),'YYYY')+3)
THEN NEXT_DAY(next_day(Concat('31.10.',to_char(to_date('&pdate'),'YYYY')+3),2),1)
ELSE NEXT_DAY(next_day(Concat('31.10.',to_char(to_date('&pdate'),'YYYY')+7),2),1)
END
END) AS "USA President election "
FROM dual;
Undefine pdate
Плотный ранг
SELECT last_name,r.salary,r.department_id,r.rank
FROM EMPLOYEES em,
(SELECT e.salary,e.department_id, sal_num-dep_num AS RANK
FROM(
SELECT salary,department_id,rownum AS sal_num
from(
SELECT distinct salary, department_id
FROM EMPLOYEES
WHERE department_id is not null
ORDER BY department_id, salary desc
)
) e,
(SELECT min(dep_num)-1 AS dep_num,department_id
FROM(
SELECT department_id, rownum AS dep_num
from(
SELECT distinct salary, department_id
FROM EMPLOYEES
WHERE department_id is not null
ORDER BY department_id, salary desc
)
)
GROUP BY department_id
) d
WHERE e.department_id=d.department_id) r
WHERE em.salary=r.salary and em.department_id=r.department_id
ORDER BY department_id, salary desc