|
PL/SQL
|
|||
---|---|---|---|
#18+
Здравствуйте.У меня возникли проблемы с решение данного задания.Ниже я укажу полностью информацию по заданию а так свои попытки решения. Буду благодарен если укажите на ошибку(и) и поможете разобраться в моих попытках и в задании в целом. Задание: Список сотрудников, работающих в лаборатории, в которой работает самый молодой сотрудник, не имеющий детей. Данные представить в виде таблицы: Табельный номер, ФИО_сотрудника (фамилия с инициалами), Пол, Дата рождения, Возраст, Отклонение оклада от среднего по лаборатории, в которой работает сотрудник. Есть три таблицы которые задействованы в этом задании: 1) S_ДЕТИ_СОТРУДНИКОВ в которой есть следующие поля: СЛУЖАЩИЙ_ИД ФАМИЛИЯ ИМЯ ОТЧЕСТВО ДЕНЬ_РОЖДЕНИЯ 2) S_ЛАБОРАТОРИИ ИД РУКОВОДИТЕЛЬ_ИД НАИМЕНОВАНИЕ ДАТА_ОРГАНИЗАЦИИ ДАТА_ЗАКРЫТИЯ 3) S_СЛУЖАЩИЕ ИД ТАБЕЛЬНЫЙ_НОМЕР ЛАБОРАТОРИЯ_ИД СПЕЦИАЛЬНОСТЬ_ИД ФАМИЛИЯ ИМЯ ОТЧЕСТВО ПОЛ ДЕНЬ_РОЖДЕНИЯ СЕМ_ПОЛОЖЕНИЕ ТЕЛЕФОН АДРЕС ХАРАКТЕРИСТИКА ОКЛАД Я написал запрос: SELECT S_СЛУЖАЩИЕ.ТАБЕЛЬНЫЙ_НОМЕР, CONCAT(CONCAT(CONCAT("ФАМИЛИЯ",' '),CONCAT(SUBSTR("ИМЯ",0,1),'.')),CONCAT(CONCAT(SUBSTR("ОТЧЕСТВО",0,1),'.'),CONCAT(' ',' '))) AS ФИО, S_СЛУЖАЩИЕ.ПОЛ, TO_CHAR(S_СЛУЖАЩИЕ.ДЕНЬ_РОЖДЕНИЯ,'dd.mm.yyyy') ДР, TRUNC((SYSDATE - S_СЛУЖАЩИЕ.ДЕНЬ_РОЖДЕНИЯ)/365) ВОЗРАСТ FROM S_СЛУЖАЩИЕ, (SELECT ЛАБОРАТОРИЯ_ИД Л_ИД FROM (SELECT * FROM "S_СЛУЖАЩИЕ" LEFT JOIN "S_ДЕТИ_СОТРУДНИКОВ" ON "S_СЛУЖАЩИЕ"."ИД" = "S_ДЕТИ_СОТРУДНИКОВ"."СЛУЖАЩИЙ_ИД" WHERE "S_ДЕТИ_СОТРУДНИКОВ"."СЛУЖАЩИЙ_ИД" IS NULL ORDER BY S_СЛУЖАЩИЕ.ДЕНЬ_РОЖДЕНИЯ DESC) WHERE ROWNUM = 1) WHERE S_СЛУЖАЩИЕ.ЛАБОРАТОРИЯ_ИД = Л_ИД В этом запросе выводится все по заданию кроме {Отклонение оклада от среднего по лаборатории, в которой работает сотрудник} Как бы я ни пытался у меня не получается.Поэтому решил обратится к вам. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 11:41 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
helpsql1999, Правила форума не рекомендуют бессмысленные темы и несколько топиков по одному вопросу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 11:52 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
helpsql1999 Здравствуйте.У меня возникли проблемы с решение данного задания.Ниже я укажу полностью информацию по заданию а так свои попытки решения. Буду благодарен если укажите на ошибку(и) и поможете разобраться в моих попытках и в задании в целом. Задание: Список сотрудников, работающих в лаборатории, в которой работает самый молодой сотрудник, не имеющий детей. Данные представить в виде таблицы: Табельный номер, ФИО_сотрудника (фамилия с инициалами), Пол, Дата рождения, Возраст, Отклонение оклада от среднего по лаборатории, в которой работает сотрудник. Есть три таблицы которые задействованы в этом задании: 1) S_ДЕТИ_СОТРУДНИКОВ в которой есть следующие поля: Код: plsql 1. 2. 3. 4. 5.
2) S_ЛАБОРАТОРИИ Код: plsql 1. 2. 3. 4. 5.
3) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Я написал запрос: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
В этом запросе выводится все по заданию кроме {Отклонение оклада от среднего по лаборатории, в которой работает сотрудник} Как бы я ни пытался у меня не получается.Поэтому решил обратится к вам. 2. Не создавайте вторую (дублирующую) тему по одному и тому же вопросу. 3. оформляйте код так, чтобы его было удобно читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 11:54 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
Язык программирования PL/SQL не имеет к этой задаче никакого отношения. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 11:56 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
Извините это первый раз когда я решил попробовать форум в качестве обратной связи и не знаю пока как и что тут,но как SQL задача не относится к языку SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:08 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
helpsql1999, select поля ,oklad- (select avg(oklad) from S_СЛУЖАЩИЕ S2 where S2.ЛАБОРАТОРИЯ_ИД=алиас из основного запроса.ЛАБОРАТОРИЯ_ИД) diff from основной запрос зы не рассмотрен случай когда несколько самых молодых (близнецы) работают в разных лабораториях зыы я б решал задачку с помощью аналит ф-ций .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:22 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
helpsql1999 но как SQL задача не относится к языку SQL? В Oracle SQL и PL/SQL - это разные вещи ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:28 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
Спасибо большое ваше решение очень помогло мне. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:29 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
Stax, SQL*Plus 1. При оформлении кода используйте тэг SRC данного форума. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:35 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
SQL*Plus, так и кода как такового ж и не было .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:57 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
Stax SQL*Plus, так и кода как такового ж и не было .... stax Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 13:46 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
SQL*Plus А это тогда что? :-) схемка/совет/зарисовка/шаблон/намек/... зы в дальнейшем буду стараться чаще пользовать [SRC PLSQL][/SRC] ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 13:57 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
Stax select поля ,oklad- (select avg(oklad) from S_СЛУЖАЩИЕ S2 where S2.ЛАБОРАТОРИЯ_ИД=алиас из основного запроса.ЛАБОРАТОРИЯ_ИД) diff from основной запрос Может быть, лучше avg(oklad) over(partition by "ЛАБОРАТОРИЯ_ИД") ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 03:47 |
|
PL/SQL
|
|||
---|---|---|---|
#18+
Хливкие Шорьки Может быть, лучше avg(oklad) over(partition by "ЛАБОРАТОРИЯ_ИД") ? может авторзыы я б решал задачку с помощью аналит ф-ций ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 10:02 |
|
|
start [/forum/topic.php?fid=52&fpage=50&tid=1881413]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 293ms |
total: | 431ms |
0 / 0 |