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

Откуда:
Сообщений: 4
Помогите сделать перебор сочетаний на SQL?

Задача:
Есть таблица с ID ПК и количеством слотов памяти:
ПК / кол
ПК1 / 2
ПК2 / 2
ПК3 / 3
ПК4 / 4

Есть таблица с наименованиями и количеством планок:
Память / размер / шт
DDR / 128 / 22
DDR / 256 / 15
DDR / 512 / 9
DDR / 1024 / 1000 (ставим большое количество - так как эти планки будут закупаться, ими мы будем "добивать" компьютеры)

Надо "заполнить" компьютеры планками памяти так, чтобы общий объем был не менее 1024 в каждом(параметр задаваемый будет). Причем начать надо с наименьших планок. Например, компьютер с 4мя слотами, пробуем:
128/128/128/128 = 512 - проверяем что сумма >= 1024 - не верно, пробуем
128/128/128/256 = 640 - проверяем что сумма >= 1024 - не верно, пробуем
128/128/256/256 = 768 - проверяем что сумма >= 1024 - не верно, пробуем
128/256/256/256 = 869 - проверяем что сумма >= 1024 - не верно, пробуем
256/256/256/256 = 1024 -проверяем что сумма >= 1024 - ВЕРНО, записываем

и так для каждого компа. Важно что количество слотов в компьютерах разное, количество планок в наличии меняется, требуемый объем тоже может меняться.

Должна получиться табличка вида (применительно к вышеуказанным компам):
ПК / слот1 / слот2 / слот3 / слот4
ПК1 / 512 / 512
ПК2 / 512 / 512
ПК3 / 512 / 256 / 256
ПК4 / 256 / 256 / 256 / 256

Если честно, я в SQL крайне плохо соображаю, умею только селекты и джойны делать)) если поможете буду ОЧЕНЬ БЛАГОДАРЕН!!!

PS если все получится опубликую статью на хабрахабре как и чем динамически я собираю отчет с компьютеров, формирую требования к закупке и как потом это все системные администраторы расставляют по компам) и о тех кто помогал при создании конечно же упомяну!
21 сен 12, 07:35    [13199543]     Ответить | Цитировать Сообщить модератору
 Re: Перебор сочетаний в MS SQL?  [new]
RedMercury
Guest
А системных администраторов потом не уволят за ненадобностью ? ;)
21 сен 12, 08:34    [13199643]     Ответить | Цитировать Сообщить модератору
 Re: Перебор сочетаний в MS SQL?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Вайландт Артем
Если честно, я в SQL крайне плохо соображаю, умею только селекты и джойны делать

И CROSS JOIN тоже ?
21 сен 12, 09:21    [13199784]     Ответить | Цитировать Сообщить модератору
 Re: Перебор сочетаний в MS SQL?  [new]
Вайландт Артем
Member

Откуда:
Сообщений: 4
RedMercury,
системный администратор я как раз) занимаюсь SCCM 2012, а техподдержка будет бегать по компам)

Glory,
нет ) сейчас буду гуглить что это... но подозреваю что этим не обойтись!!! или это меня так тонко послали?
21 сен 12, 11:15    [13200520]     Ответить | Цитировать Сообщить модератору
 Re: Перебор сочетаний в MS SQL?  [new]

Guest
В вашем случае скорей cross join и having
21 сен 12, 13:22    [13201779]     Ответить | Цитировать Сообщить модератору
 Re: Перебор сочетаний в MS SQL?  [new]
aleks2
Guest
В вашем случае скорей cross join и having

1. Я уж повторюсь: неправильно поставленные задачи - нерешаемы.
2. А уж более идиотской постановки наверное и не придумать.
3. Ну, разве только поперебирать = самоцель.
21 сен 12, 15:24    [13203001]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить