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

Откуда:
Сообщений: 16
Люди добрые, помогите с реализацией..
Имеется некий интервал в условных единицах (например в часах). И некая таблица интервалов (будем считать, что тоже в часах).
Например 20 часов и набор из интервалов 6, 4, 2. Нужно получить 6+6+6+2, т.е. заполнить 20 часов максимальными интервалами из второй таблицы. Сумма не должна быть больше 20, меньше быть может. Попробовал с рекурсией - что то не выходит каменный цветок. сервер 2008 r2

declare @t table (x int)

insert into @t
values (6),(4),(2)

declare @duration table (y int)

insert into @duration
values (20)

;with cte (x,y) as
(
select top 1 x, (select Y = 20-x from @duration) from @t
where x<=(select Y = 20-x from @duration)
--union all
--select top 1 x,(select Y from cte) from @t
--where x<=(select Y from cte)
)

select * from cte
22 июн 11, 15:15    [10855002]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия. Заполнение интервала значениями.  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Greyghost,

попробуйте вот тут посмотреть, похоже на вашу задачку вроде:
задача упаковки рюкзака
22 июн 11, 15:20    [10855063]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить