Предполагаемые даты отгрузки - курсор? - PullRequest
1 голос
/ 06 января 2011

Меня попросили применить некоторую «умную» логику для оценки дат отгрузки товаров, которые были размещены на последнем заказе. Логика, которую они хотели бы использовать, заключается в следующем:

Пирог в небе Если у нас больше заказов, чем по какому-либо отдельному заказу на покупку, рассчитайте, какие заказы на продажу будут подтверждать какие входящие заказы на покупку, и отобразите соответствующую дату. Пример:

Open Sales Orders
SO#  123455 – Req Date 12/15/10 – PN A000123  Backorder 2 pcs.
SO#  123462 – Req Date 12/16/10 – PN A000123  Backorder 7 pcs.
SO#  123941 – Req Date 12/17/10 – PN A000123  Backorder 4 pcs.

Open Purchase Orders
PO#  987654 – Promised 12/29/10 – 5 pcs.
PO#  994258 – Promised 1/15/11 – 15 pcs.

Dates we should be displaying
SO#  123455 – ESD = 12/29/10
SO#  123462 – ESD = 1/15/11
SO#  123941 – ESD = 1/15/11

Я знаю, что мог бы создать временную таблицу для хранения информации об открытом заказе на поставку, а затем с помощью курсора захватить каждый открытый заказ на продажу в порядке запрошенной даты, а затем получить самое раннее заказ на поставку, удовлетворяющий требуемому количеству, и затем уменьшить это количество с этого ПО. Чтобы сделать вещи более интересными, мы отправим частичные заказы, поэтому, если первый заказ был на 7, мы отправили бы 5 и разместили оставшиеся 2 на последующем заказе. Таким образом, это будет что-то вроде «5 отправлено 29.12.10, остальные 2 будут отправлены 15.01.11». Любые рекомендации?

1 Ответ

1 голос
/ 06 января 2011

Я подозреваю, что это можно сделать с помощью одного оператора SQL, но это было бы настолько фантастически сложно, что вы просто не могли бы попытаться написать его.(Кто-то, вероятно, докажет, что я ошибаюсь в течение нескольких минут после того, как я опубликовал это.) Цикл процедурного кода, кажется, был бы обычным делом дня здесь.

Просто из головы, я, вероятно, сделал бы что-то вроде:

  • Создание списка операций по продажам и Purcahse, упорядоченных сначала по дням, а затем по (покупка, затем активность)
  • Итерирование по этому списку, отслеживаниесчетчиков (доступные единицы) и списков выполненных и невыполненных обязательств (продажи)
  • По мере обработки каждой строки отслеживайте пул доступных предметов, увеличивая (покупки) или уменьшая (продажи) по мере необходимости
  • По мере появления каждого элемента «Продажи», в зависимости от имеющегося на тот момент объема деталей, создайте новые записи (новая таблица?), Показывающие выполнение, полное или частичное, и / или отслеживание продаж, которые еще не были полностью обработаны.

Это все оценки / прогнозы, поэтому вам не нужно было бы сохранять данные, сгенерированные этой подпрограммой, верно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...