Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2022, 10:09   #1
Lestern
Новичок
Джуниор
 
Регистрация: 15.02.2022
Сообщений: 1
По умолчанию помогите, никак понять не могу

Есть задание
В таблице 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 тысяч руб.


Как это можно написать? уже несколько дней сидел и что-то совсем не понимаю Х_х Нужно на oracle написать
Lestern вне форума Ответить с цитированием
Старый 15.02.2022, 11:23   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

для MS SQL можно так (не знаю oracle аналога case)

Код:
select * 
from ( select  pers_id, ....
          case when --руководитель hdr.department_head =prs.pers_id 
                         then 1 else 0 end as plus_header,
          case when -- мужчина gender =... 
                         then 1 else 0 end as plus_gender,
          case when -- в отделе wrk.department_name =.... 
                         then 1 else 0 end as plus_department,
          case when ---подходящий возраст 
                         then 1 else 0 end as plus_age,
          case when --достаточный оклад 
                         then 1 else 0 end as plus_salary

           from sql_test_personell prs
           left join sql_test_department wrk on wrk.department_id =prs.department_id
           left join sql_test_Department hdr on hdr.department_head =prs.pers_id
          ) as plus
where 
       plus_header + plus_man + plus_department + plus_age +plus_salary >=3
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 15.02.2022 в 11:25.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CSS связь с html никак понять не могу. GeorgDeckers HTML и CSS 6 31.08.2018 07:41
В чём ошибка..никак не могу понять Лися Общие вопросы по Java, Java SE, Kotlin 1 16.10.2011 00:50
Векторы, никак не могу понять YourLastSong Общие вопросы C/C++ 6 26.12.2010 18:00