Гость
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Задача на PL\SQL / 24 сообщений из 24, страница 1 из 1
20.03.2021, 00:53
    #40055429
Окакий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Уважаемые знатоки, помогите пожалуйста решить с помощью PL\SQL задачу.
Задача:
Даны таблицы:
t_employ_test --тут хранятся сотрудники.
t_xxx_test -- здесь магазины и свободные места ( workplaces ).

необходимо распределить (заполнить таблицу t_xxx_empl_reference_test ) сотрудников в магазины, по условиями:
1. В каждом магазине должен быть заведующий и продавцы.
2. Один заведующий может управлять 1 <= N <= 3 магазинами.
3. В магазине должно быть 2 <= N <= t_xxx_test.workplaces продавцов.
всего есть 400 заведующих и 5000 продавцов
структура и частичное наполнение таблиц на картинке:
...
Рейтинг: 0 / 0
20.03.2021, 06:13
    #40055443
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Покажите ваш вариант решения.
...
Рейтинг: 0 / 0
20.03.2021, 07:55
    #40055445
Окакий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Synoptic,
Его нет. Хотел посмотреть варианты и понять как можно такую задачу решить,может в голове бы свой вариант решения появился тогда у меня..
...
Рейтинг: 0 / 0
20.03.2021, 10:06
    #40055453
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Окакий
Synoptic,
Его нет. Хотел посмотреть варианты и понять как можно такую задачу решить,может в голове бы свой вариант решения появился тогда у меня..
ну хоть тестовый пример в виде
Код: plsql
1.
2.
3.
4.
with t_employ_test as(
select 1 id, '1' text from dual union all
...
)
...
Рейтинг: 0 / 0
20.03.2021, 10:36
    #40055458
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Окакий
1. В каждом магазине должен быть заведующий и продавцы.
2. Один заведующий может управлять 1 <= N <= 3 магазинами.
3. В магазине должно быть 2 <= N <= t_xxx_test.workplaces продавцов.
всего есть 400 заведующих и 5000 продавцов
структура и частичное наполнение таблиц на картинке:
или в одном городе 800 магазинов
или сотрудников и заведующих возят по стране, причем один заведующий может заведовать магазинами одновременно во Владике и Калининграде
или это онлайн площадки... но нахрена там столько продавцов...
...
Рейтинг: 0 / 0
20.03.2021, 11:10
    #40055459
Окакий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
andreymx,
1000 магазинов в разных городах, 400 управляющих и 5000 продавцов. В каких городах магазины неважно для задачи)
...
Рейтинг: 0 / 0
20.03.2021, 11:13
    #40055460
Окакий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
На скрине прилржил структуру таблиц(поля и частичное наполнение). Нужен алгоритм решения,я пока не могу придумать ничего путного...
...
Рейтинг: 0 / 0
20.03.2021, 11:22
    #40055463
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Окакий,

тут скл нужен совсем немного, а больше арифметика

1000 магазинов 400 заведующих - 200 магазинов по 2 заведующих и 200 по 3

1000 магазинов по 5 продавцов
берешь row_number() over(order by id продавца) и trunc(делишь на 5) - вот тебе ид магазина
вкратце

а если цифры не такие круглые, чуть сложнее
...
Рейтинг: 0 / 0
20.03.2021, 11:53
    #40055467
Окакий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
andreymx,

Не так, там у каждого магазинана свое количество мест для продавцов,где 3,где 9, где 5 и тд. Это поле workplaces
...
Рейтинг: 0 / 0
20.03.2021, 11:56
    #40055468
Окакий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Ну и логично,что продавцы каждый только в 1 магазине может работать. А не как с заведующими..
...
Рейтинг: 0 / 0
20.03.2021, 14:18
    #40055484
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
А если продавцов не хватит под все рабочие места? Или будет больше
...
Рейтинг: 0 / 0
20.03.2021, 14:41
    #40055487
Задача на PL\SQL
Автор, добрый день. Не хочу быть грубым, но вы совсем не умеете ставить задачу. Вам что нужно? Скрипт распределения получить, заполнить таблицу или что? Кроме условий какие есть ограничения? Сделайте пример на контрольный группе. По вашему описанию задачу решить однозначно очень сложно.
...
Рейтинг: 0 / 0
20.03.2021, 15:13
    #40055492
Окакий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Илья Вишневский, согласен насчет постановки,но именно в таком виде мне дали ее на собеседовании и я не написал ее за несколько отведенных часов.. Вот и хочу понять как сделать скрипт по этим условиям,который заполнит таблицу связей. Ограничения как мне показалось,по условиям понятные. Попробую своими словами:есть таблица с сотрудниками,в ней поля id, название должности(заведующий или продавец) и id должности(1 заведующий и 2 продавец). Есть таблица магазинов,в ней поле id, название магазина и количество свободных мест для продавцов в каждом магазине. Нужно написать скрипт,который по условиям выше заполнит таблицу связей,в которой есть поле id(его можно заполнить просто сиквенсом),id сотрудника из табл сотрудников и id магазина из таблицы магазинов. Условия вроде понятно были даны, каждый заведующий должен относится к магазинам от 1 до 3х. Каждый продавец должен относится к какому либо магазину(не должен остаться без работы). Количество мест в каждом магазине это поле workplaces, думаю допускается,если не все магазины до конца будут укомплектованы продавцами.Посмотрите на картинку к задаче,должно все прояснится.. Как то так,извините если с ошибками,сейчас не дома и пишу с телефона.
...
Рейтинг: 0 / 0
20.03.2021, 15:24
    #40055494
Окакий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
andreymx, посмотрите выше,может немного попонятнее станет. Хотя бы формулы для распределения,если не сам скрипт,скрипт как будет время могу попробовать написать. Интересны варианты решений,посмотреть бы и вникнуть во все для опыта и понимания
...
Рейтинг: 0 / 0
20.03.2021, 15:37
    #40055495
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
ОкакийНе так, там у каждого магазинана свое количество мест для продавцов,где 3,где 9, где 5 и
тд. Это поле workplaces

Ну и? Находишь сумму workplaces, в цикле по магазинам рассовываешь в них продавцов
согласно пропорции workplaces/sum(workplaces). Если остался нераспределённый продавец -
суёшь его в первый попавшийся незаполненный магазин.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.03.2021, 15:55
    #40055496
Окакий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Dimitry Sibiryakov,спасибо, дали пищу для старта. Если не сложно опишите подробнее как можно распределить заведующих и продавцов,придлизительно на псевдокоде хотя бы..
...
Рейтинг: 0 / 0
20.03.2021, 16:03
    #40055497
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
А зачем? Собеседование ты всё равно провалил, а мне эту работ не предлагали.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.03.2021, 16:12
    #40055499
Окакий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Dimitry Sibiryakov, ну для чего именно я написал выше, просто набраться опыта. А насчет собеседования, я особо и не претендовал, работа есть и стабильная, было интересно,смогу ли прыгнуть выше. Пока не готов,вот и хочу поднабраться опыта
...
Рейтинг: 0 / 0
20.03.2021, 16:47
    #40055503
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Невозможно набраться опыта решая олимпиадные задачи. А твоя задача - тривиальное
распределение по корзинам. Курсор по продавцам и ещё один по магазинам, далее - два
вложенных цикла.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.03.2021, 22:23
    #40055561
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Dimitry Sibiryakov
Курсор по продавцам и ещё один по магазинам, далее - два вложенных цикла.

Зачем так накручивать то, что решается одним запросом?
...
Рейтинг: 0 / 0
20.03.2021, 23:11
    #40055565
MazoHist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
когда-то решалось такое , может не совсем оптимально
...
Рейтинг: 0 / 0
21.03.2021, 09:21
    #40055586
Окакий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
softwarer, как это можно сделать запросом?
Напишите пример
...
Рейтинг: 0 / 0
20.01.2022, 21:29
    #40128236
AlexGolovko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
Окакий,

Доброго времени суток. Подскажите у Вас получилось все таки решить данную задачу? Если да то можно посмотреть Ваше решение, очень заинтересовала задача
...
Рейтинг: 0 / 0
20.01.2022, 22:17
    #40128247
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на PL\SQL
AlexGolovko
Окакий,

Доброго времени суток. Подскажите у Вас получилось все таки решить данную задачу? Если да то можно посмотреть Ваше решение, очень заинтересовала задача
В армии он, попозже будет.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Задача на PL\SQL / 24 сообщений из 24, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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