powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle SQL
7 сообщений из 7, страница 1 из 1
Oracle SQL
    #39948618
helpsql1999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте
Есть вот такой запрос:
Код: 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
Oracle SQL
    #39948807
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть дрова и сарай. Не могу их совместить. Поможете?
...
Рейтинг: 0 / 0
Oracle SQL
    #39948821
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helpsql1999,

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

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

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

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

Oracle LiveSQL [/quot]

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

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

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

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

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

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

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

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


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

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

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

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

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

Код: 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
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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