Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Распределение частного от деления между объектами  [new]
metalistik1
Member

Откуда:
Сообщений: 7
Итак доброго времени суток. Моя голова уже устала думать, поехали мозги и т.д. ... Решил спросить на форуме. Итак, имеются машинки, изделие и заказ. Необходимо распределить нагрузку между машинками т.е. кол-во изделий/машинки (например 100 (изделий)/2 (машинки), в результате на каждую машинку по 50 изделий), тут все просто, но загвоздка заключается в том, что если частное с плавающей точкой, то как бы изделие не может быть сделано частично там, частично там ( например 100 изделий / 3 машинки - результат 33,3 изделия на каждую, а необходимо примерно так : 34,33,33)! у меня получается так:
SELECT vi.id_izd,vi.id_mash,vi.id_zak,zakaz.kol,zakaz.kol/chis.ch norma 
 FROM vi,zakaz,
(SELECT COUNT(id_mash) AS ch FROM vi JOIN zakaz ON vi.id_izd=zakaz.id_izd ) AS chis 
WHERE zakaz.id_zak=vi.id_zak

Жду ваших предложений. Огромное спасибо!!!
8 янв 16, 15:56    [18652677]     Ответить | Цитировать Сообщить модератору
 Re: Распределение частного от деления между объектами  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Есть оконная функция с помощью которой можно разбивать на группы - NTILE

Из запроса я вижу, что заказы и машины связаны между собой? Или я чего-то недопонял.
8 янв 16, 16:06    [18652707]     Ответить | Цитировать Сообщить модератору
 Re: Распределение частного от деления между объектами  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21249
metalistik1
( например 100 изделий / 3 машинки - результат 33,3 изделия на каждую, а необходимо примерно так : 34,33,33)

Если количество изделий = N, а количество машин - M, то на i-й машине надо делать ROUND((i*N)/M) - ROUND(((i-1)*N)/M) изделий.
8 янв 16, 16:51    [18652860]     Ответить | Цитировать Сообщить модератору
 Re: Распределение частного от деления между объектами  [new]
aleks2
Guest
Akina
metalistik1
( например 100 изделий / 3 машинки - результат 33,3 изделия на каждую, а необходимо примерно так : 34,33,33)

Если количество изделий = N, а количество машин - M, то на i-й машине надо делать ROUND((i*N)/M) - ROUND(((i-1)*N)/M) изделий.

Ну что за бред? Не мучай жывотное. Процессор т.е.

На первых
N - ROUND(N/M)*M
машинах надо делать
ROUND(N/M) + 1 изделие.

На остальных
M - ( N - ROUND(N/M)*M )
машинах надо делать
ROUND(N/M) изделий
10 янв 16, 13:29    [18658304]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить