powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Задача на PL\SQL
24 сообщений из 24, страница 1 из 1
Задача на PL\SQL
    #40055429
Окакий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые знатоки, помогите пожалуйста решить с помощью 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
Задача на PL\SQL
    #40055443
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажите ваш вариант решения.
...
Рейтинг: 0 / 0
Задача на PL\SQL
    #40055445
Окакий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Synoptic,
Его нет. Хотел посмотреть варианты и понять как можно такую задачу решить,может в голове бы свой вариант решения появился тогда у меня..
...
Рейтинг: 0 / 0
Задача на PL\SQL
    #40055453
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Окакий
Synoptic,
Его нет. Хотел посмотреть варианты и понять как можно такую задачу решить,может в голове бы свой вариант решения появился тогда у меня..
ну хоть тестовый пример в виде
Код: plsql
1.
2.
3.
4.
with t_employ_test as(
select 1 id, '1' text from dual union all
...
)
...
Рейтинг: 0 / 0
Задача на PL\SQL
    #40055458
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Окакий
1. В каждом магазине должен быть заведующий и продавцы.
2. Один заведующий может управлять 1 <= N <= 3 магазинами.
3. В магазине должно быть 2 <= N <= t_xxx_test.workplaces продавцов.
всего есть 400 заведующих и 5000 продавцов
структура и частичное наполнение таблиц на картинке:
или в одном городе 800 магазинов
или сотрудников и заведующих возят по стране, причем один заведующий может заведовать магазинами одновременно во Владике и Калининграде
или это онлайн площадки... но нахрена там столько продавцов...
...
Рейтинг: 0 / 0
Задача на PL\SQL
    #40055459
Окакий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymx,
1000 магазинов в разных городах, 400 управляющих и 5000 продавцов. В каких городах магазины неважно для задачи)
...
Рейтинг: 0 / 0
Задача на PL\SQL
    #40055460
Окакий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На скрине прилржил структуру таблиц(поля и частичное наполнение). Нужен алгоритм решения,я пока не могу придумать ничего путного...
...
Рейтинг: 0 / 0
Задача на PL\SQL
    #40055463
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Окакий,

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

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

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

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

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

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

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

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

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


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