|
Распределение позиций накладной по остаткам на складах запросом. | ☑ | ||
---|---|---|---|---|
0
live in sky dreams
02.12.17
✎
19:53
|
Имеем несколько складов.
Склад1, Склад2, Склад3. Имеем товар "Номенклатура1", "Номенклатура2". имеем таблицу остатков ________________________ Склад1|Номенклатура1| 5| Склад2|Номенклатура1| 6| Склад3|Номенклатура1|-2| Склад1|Номенклатура2| 4| Склад2|Номенклатура2| 1| Имеем накладную Номенклатура1|8 Номенклатура2|6 Задача: 1) Распределить накладную по остаткам (с какого склада сколько списать) 2) В случае если товара не достаточно - узнать какого товара и сколько нехватает. решаема ли задача с помощью запроса? По FIFO в запросе я читал, использовал в предыдущих задачах, но здесь: 1) Не от чего оттолкнуться в сравнении (наименование и код - повторяющиеся в строках поля) 2) Присутствуют отрицательные остатки на одном из складов (распровели перемещение и забыли, бывает) 3) Нужно понять чего и сколько нехватает Без решения первого пункта, я так понимаю, в дальнейших пунктах решения не найти. начнем с него.. Я максимум "умного" придумал получать в отдельном поле по группировочным полям результат конкатенации этих строк. ....Склад.Код+"|"+"Номенклатура.Код" КАК Индекс А в дальнейшем соединить получившуюся таблицу с ней же и работать по примеру: Книга знаний: Нумерация строк в запросе Но как то это решение кажется мне кривым. Возможно есть более изящный способ? В общем, буду благодарен за любую помощь по задаче, если кому не лень в субботу,.. |
|||
1
Ildarovich
03.12.17
✎
12:11
|
Вот в этой статье приведено решение данной задачи http://catalog.mista.ru/public/568299/ . Рекомендую взять решение из комментария 37. Оно свободно от ограничений целочисленности. Вот, собственно, решение:
ВЫБРАТЬ
Думаю, "ячейки" на склады заментить будет нетрудно. |
|||
2
Ildarovich
03.12.17
✎
12:17
|
+(1) Если бы задали вопрос прямо на Инфостарте, получили бы ответ быстрее и выглядел бы он наряднее. Тут, например, ни грамматическую ошибку исправить нельзя, ни картинку к ответу приложить.
|
|||
3
organizm
03.12.17
✎
12:20
|
решение есть, но не вздумайте распределение делать запросом!
|
|||
4
Смотрящий
03.12.17
✎
12:36
|
(2) там нет 37 комментария
|
|||
5
Ildarovich
03.12.17
✎
14:00
|
(4) Посмотрите внимательнее - все-таки есть: http://forum.infostart.ru/forum9/topic164079/message1719985/#message1719985 Видимо, у вас вид представления комментариев - "дерево". Если упорядочить по дате, находить легче.
|
|||
6
Ildarovich
03.12.17
✎
14:11
|
(3) Не соглашусь в данном случае. Тут распределяется ОДНА строка номенклатуры на относительно небольшое количество складов с остатками (думаю, не больше десятка-двух). В этом случае квадратичная зависимость времени работы запроса от числа строк, на которые идет распределение, отсутствует (одна строка конкретной номенклатуры! х несколько складов). Даже если строк несколько, их все равно меньше сотни, с чего начинается резкий рост. Поэтому к данному конкретному случаю обычно высказываемое предостережение не относится.
|
|||
7
breezee
03.12.17
✎
14:18
|
(0) Зачем запросом? Просто для интереса - думайте сами) Если есть необходимость, на пример вы отчет на СКД делаете - укажите.
Если можно кодом - лучше кодом. Задача "классическая". Это как решать возведение в степень через циклы, когда есть функция "pow". |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |