Господа, помогите найти адекватное по времени решение задачи перераспределения товаров между складами.
Должно работать «Многие-ко-многим» (т.е. "Количество" может делиться).
Есть 2 таблицы складов отправителей и получателей с количествами избытка и недостатка соответственно. На выходе нужно получить Таблицу Отправитель, Получатель, Кол-во.
Например, Исходные Данные для одного товара:
Должно работать «Многие-ко-многим» (т.е. "Количество" может делиться).
Есть 2 таблицы складов отправителей и получателей с количествами избытка и недостатка соответственно. На выходе нужно получить Таблицу Отправитель, Получатель, Кол-во.
Например, Исходные Данные для одного товара:
USE tempdb -- отправители с рангами отправки (в первую очередь с минимальным рангом). num может делиться разным получателям! CREATE TABLE #source(id_src int, num FLOAT, rang int) INSERT into #source VALUES (140,400,1), (77 ,150,2), (110,160,3), (120,300,4), (115,250,5), (148,200,6), (76 ,210,7), (136,100,8), (52 ,150,9), (7 ,110,10) -- получатели отсортированы по num. num может приходить от разных отправителей CREATE TABLE #destination(id_dest INT, num FLOAT) INSERT into #destination VALUES (22 ,800), (40 ,150), (44 ,100), (114 ,90), (26 ,80), (112 ,50), (59 ,30), (109 ,20), (92 ,10) -- итог CREATE TABLE #result (id_src int, id_dest int, num FLOAT) INSERT into #result VALUES (140, 22 ,400), (77, 22 ,150 ), (110, 22 ,160 ), (120, 22 ,90 ), (120, 40 ,150 ), (120, 44 ,60 ), (115, 44 ,40 ), (115, 114 ,90 ), (115, 26 ,80 ), (115, 112 ,40 ), (148, 112 ,10 ), (148, 59 ,30 ), (148, 109 ,20 ), (148, 92 ,10 ) --DROP TABLE #source --DROP TABLE #destination --DROP TABLE #result