Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle SQL / 7 сообщений из 7, страница 1 из 1
18.04.2020, 18:11
    #39948618
helpsql1999
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle SQL
Здравствуйте
Есть вот такой запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
select 
наименование,
фамилия ||' '||SUBSTR(имя, 0, 1)||'.'||SUBSTR(отчество, 0, 1)||'.' фио
from s_лаборатории left join s_служащие on s_лаборатории.руководитель_ид = s_служащие.ид
where руководитель_ид in 
(select руководитель_ид 
from s_лаборатории where not exists(select null from s_дети_сотрудников where служащий_ид = руководитель_ид group by руководитель_ид))


И вот такой:
Код: sql
1.
select лаборатория_ид,count(*) as кол_во from s_служащие group by лаборатория_ид


Не могу их никак совместить.Подскажите пожалуйста как это сделать.
...
Рейтинг: 0 / 0
19.04.2020, 20:55
    #39948807
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle SQL
Есть дрова и сарай. Не могу их совместить. Поможете?
...
Рейтинг: 0 / 0
19.04.2020, 22:32
    #39948821
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle SQL
helpsql1999,

Опять двадцать пять
22105844

Пункт 1
Пункт 2

Ну и название топика очень оригинальное
...
Рейтинг: 0 / 0
19.04.2020, 22:36
    #39948822
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle SQL
helpsql1999,

И да, проверить SQL можно тут:

Oracle LiveSQL [/quot]

Для работы, нужно зарегистрироваться на oracle.com, регистрация бесплатная
...
Рейтинг: 0 / 0
20.04.2020, 10:23
    #39948870
helpsql1999
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle SQL
Фул задание:
Создать представление «П_Лаборатории6», на основе запроса, возвращающего
следующие столбцы: Наименование_лаборатории, ФИО_руководителя_лаборатории,
Дата_начала_периода, Дата_окончания_периода, Количество_сотрудников,
Размер_периода. Запрос должен удовлетворять следующим условиям:
Дата_начала_периода вычисляется по правилу: если лаборатория создана в текущем году,
то дата создания, во всех остальных случаях – начало текущего года;
Дата_окончания_периода вычисляется по правилу: лаборатория закрыта в текущем году,
то дата закрытия, во всех остальных случаях – конец текущего года;
Размер_периода в месяцах как разность даты окончания периода и даты начала периода;
Количество_сотрудников – количество сотрудников лаборатории.
В запрос включать только лаборатории, в которых руководители лабораторий имеют детей.
Пока я могу вывести только то что описал выше и то коряво.
...
Рейтинг: 0 / 0
20.04.2020, 11:41
    #39948892
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle SQL
helpsql1999
Фул задание:
Создать представление «П_Лаборатории6», на основе запроса, возвращающего
следующие столбцы:
Наименование_лаборатории,
ФИО_руководителя_лаборатории,
Дата_начала_периода,
Дата_окончания_периода,
Количество_сотрудников,
Размер_периода.

Запрос должен удовлетворять следующим условиям:

Дата_начала_периода вычисляется по правилу:
если лаборатория создана в текущем году,
то дата создания, во всех остальных случаях – начало текущего года;

Дата_окончания_периода вычисляется по правилу:
лаборатория закрыта в текущем году,
то дата закрытия,
во всех остальных случаях – конец текущего года;

Размер_периода в месяцах:
как разность даты окончания периода и даты начала периода;

Количество_сотрудников – количество сотрудников лаборатории.

В запрос включать только лаборатории, в которых руководители лабораторий имеют детей.

Пока я могу вывести только то что описал выше и то коряво.


Правильно заданный вопрос, половина ответа. Правильно расписанные условия - еще процентов 30

Начните с того, откуда у руководителей дети?
То есть подготовьте тестовые данные с помощью оператора WITH
для таблиц:
s_лаборатории
s_служащие
s_дети_сотрудников

На этих данных:
Получите первый запрос,
Получите второй запрос

Пока будете писать, разберетесь что откуда берется, наработаете навыки SQL
Кроме того, имея тестовые данные и пример, народу будет не влом поправить Ваш запрос.

Как сделать WITH представления есть в ссылках, протестировать можно в LiveSQL
Синтаксис смотри документацию: SQL Language Reference
...
Рейтинг: 0 / 0
20.04.2020, 13:03
    #39948911
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle SQL
Начни с такого:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
WITH
s_лаборатории (руководитель_ид, наименование, дата_создания, дата_закрытия) AS (
select 1, 'Линейного Счастья',to_date('1831-02-28','YYYY-MM-DD'),null  from dual union all
select 2, 'Смысла Жизни',to_date('1917-11-07','YYYY-MM-DD'),null  from dual union all
select 3, 'Эксплуатации',to_date('1957-06-30','YYYY-MM-DD'),null  from dual union all
select 4, 'Разнообразных приложений',to_date('1963-02-28','YYYY-MM-DD'),to_date('2020-04-16','YYYY-MM-DD')  from dual
)
,s_служащие (руководитель_ид, ид, имя, отчество, фамилия) AS (
select null,1, 'Фёдор', 'Симеонович', 'Киврин' from dual union all
select null,2, 'Кристобаль', 'Хозевич', 'Хунта' from dual union all
select null,3, 'Модест', 'Матвеевич', 'Камноедов' from dual union all
select null,4, 'Амвросий', 'Амбруазович', 'Выбегалло' from dual
)
,s_дети_сотрудник (ид, дети) AS (
select 1,6 from dual
)
select
наименование,
фамилия ||' '||SUBSTR(имя, 0, 1)||'.'||SUBSTR(отчество, 0, 1)||'.' AS фио
from s_лаборатории left join s_служащие on s_лаборатории.руководитель_ид = s_служащие.ид
where s_лаборатории.руководитель_ид in
(select руководитель_ид
from s_лаборатории where not exists(
select null from s_дети_сотрудник where ид = руководитель_ид
group by руководитель_ид
))
/
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle SQL / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]