powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / помогите, уже всю голову сломал Х_х
3 сообщений из 3, страница 1 из 1
помогите, уже всю голову сломал Х_х
    #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
помогите, уже всю голову сломал Х_х
    #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
помогите, уже всю голову сломал Х_х
    #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
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / помогите, уже всю голову сломал Х_х
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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