Гость
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / помогите, уже всю голову сломал Х_х / 3 сообщений из 3, страница 1 из 1
15.02.2022, 02:46
    #40134123
Lestern
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите, уже всю голову сломал Х_х
Есть задание
В таблице sql_test_personell содержится список сотрудников компании ОАО "Лидер".
Таблица содержит следующие поля:

pers_id уникальный номер сотрудника,
department_id уникальный номер подразделения, в котором работает сотрудник
chief_id id руководителя для данного сотрудника
pers_name ФИО сотрудника,
pers_salary number оклад сотрудика в месяц, тыс. руб.
pers_bd date дата рождения сотрудника
gender пол сотрудника

В таблице sql_test_department содержится список отделов компании ОАО "Лидер"

department_id идентификатор подразделения,
department_name наименование подразделения,
department_head идентификатор сотрудника - главы отдела

В таблице sql_test_address содержится юридический адресс компании, разбитый по столбцам

Необходимо выбрать одного сотрудника для представления ОАО "Лидер" в благотворительном
забеге. Выведите список потенциальных кандидатов, которые соответствуют хотя бы 3-м
любым из нижеперечисленных условий:
1. Руководитель
2. Мужчина
3. Работает в отделе маркетинга
4. Старше 30 лет
5. Имеет оклад выше 70 тысяч руб.


Как это можно написать? уже несколько дней сидел и что-то совсем не понимаю Х_х
...
Рейтинг: 0 / 0
15.02.2022, 10:10
    #40134147
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите, уже всю голову сломал Х_х
Lestern,
шаблон
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select * from (
  select t.*
   ,decode('Руководитель','Да',1,0)
   +decode('Мужчина','M',1,0)
   +decode('Работает в отделе маркетинга','Да',1,0)
   +decode('Старше 30 лет','Да',1,0)
   +decode('оклад выше 70 тысяч','Да',1,0) k
  from t ...
) where k>=3



ps
не хочу набивать данные,
если у Вас не получится, могу нарисовать на примере emp,dept
.....
stax
...
Рейтинг: 0 / 0
15.02.2022, 10:13
    #40134148
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите, уже всю голову сломал Х_х
Lestern,

Вижу задачу на программирование,
не вижу Вашей работы.
Вот если бы Вы подготовили данные как указано ниже,
показали что и как Вы пытались сделать,
тогда Вам скорее всего помогут.
Студентам, желающим помощи


памятка:
HOWTO :: Как правильно задавать вопросы
Как мне оформить свое сообщение?
Студентам, желающим помощи

1) Полная постановка задачи (без сокращений)

2) Подготовьте тестовые данные, лучше в виде with
пример (не ваш случай) в конце

3) Покажите что сделали, что получили, без сокращений. ( лучше не в виде screenshot)

4) используйте Тэги, читать код без них неудобно, правильно оформляйте сообщение

Пример подготовленных данных, запроса и вывода.
Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
-- table 1 with column list
with user_tab(user_id,user_name,registry_date) as (
select 1,'Bob',to_date('11.02.1921 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual union all
select 2,'Max',to_date('11.02.1922 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual union all
select 3,'Jon',to_date('11.02.1923 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual
)
-- table 2 with column list
,user_post(post_id,user_id,parent_post_id,post_date,message) as (
select 100,1,null,to_date('11.02.1923 23:04:00','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 101,2,100,to_date('11.02.1923 23:05:23','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 102,3,100,to_date('11.02.1923 23:05:35','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 103,1,102,to_date('11.02.1923 23:06:00','DD.MM.YYYY HH24:MI:SS'),'How are you' from dual union all
select 104,2,102,to_date('11.02.1923 23:07:05','DD.MM.YYYY HH24:MI:SS'),'All right!' from dual union all
select 105,1,101,to_date('11.02.1923 23:06:21','DD.MM.YYYY HH24:MI:SS'),'Bye' from dual union all
select 106,1,104,to_date('11.02.1923 23:04:37','DD.MM.YYYY HH24:MI:SS'),'Bye' from dual union all
select 107,2,null,to_date('11.02.1923 23:08:56','DD.MM.YYYY HH24:MI:SS'),'Hmm' from dual
)
select
rpad(to_char(p.post_date,'YYYY-MM-DD HH24:MI:SS  '),20+level*2,' ')||u.user_name||': '||p.message as txt
from 
 user_post p
 join user_tab  u on ( p.user_id = u.user_id)
where p.post_date >= u.registry_date
start with p.parent_post_id is null 
connect by prior p.post_id=p.parent_post_id 
;

TXT
--------------------------------------------------------------------------------
1923-02-11 23:04:00   Bob: Hi
1923-02-11 23:05:23     Max: Hi
1923-02-11 23:06:21       Bob: Bye
1923-02-11 23:05:35     Jon: Hi
1923-02-11 23:06:00       Bob: How are you
1923-02-11 23:07:05       Max: All right!
1923-02-11 23:04:37         Bob: Bye
1923-02-11 23:08:56   Max: Hmm

8 rows selected.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / помогите, уже всю голову сломал Х_х / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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