Как получить следующую фиксированную дату доставки из календаря, основываясь на некоторых условиях - PullRequest
0 голосов
/ 29 марта 2019

Я относительно новичок в запросе SQL, и мне нужна помощь в построении запроса, который будет принимать даты из ERP и сообщать мне следующую доступную дату доставки (фиксированную) из даты заказа, исходя из следующего:

Клиентам назначается день доставки: понедельник (маршрут доставки 1), вторник (маршрут доставки 2 и 3) ... и т. Д. Заказы, введенные в систему за 3 рабочих дня до следующего доступного дня доставки, переносятся на следующий доступный день.

Таким образом, заказ, который был размещен в четверг, 11 апреля, для клиента, доставляющего в понедельник, будет доставлен в понедельник, 22 апреля, а не 15-го.

Вы можете спросить, почему вы не корректируете дату в самой ERP ... ну, это старая БД FOXPRO, и никто здесь не хочет возиться с функциями, которые были написаны нашей последней технологией. мы планируем отказаться от этой ERP в ближайшие 12–18 месяцев ... поэтому мы пытаемся создать некоторые инструменты с использованием SQL, POWERPIVOT и POWERBI.

У нас есть таблица календаря, чтобы помочь с запросом даты ... но я не могу разобраться с этим запросом ... пробовал некоторые вещи с помощью datediff и dateadd ... но не могу понять это ... снова я новичок в запросе SQL, но буду очень признателен за ваш вклад по этому вопросу.

WHEN C.CLIVR3 = '1' THEN (select min(cal.date) from cal where cal.date>ce.cfdcom and cal.date>GETDATE() and cal.[day No]=5)
WHEN C.CLIVR3 = '3' THEN (select min(cal.date) from cal where cal.date>ce.cfdcom and cal.date>GETDATE() and cal.[day No]=6)
WHEN C.CLIVR3 = '4' THEN (select min(cal.date) from cal where cal.date>ce.cfdcom and cal.date>GETDATE() and cal.[day No]=6)

Будет возвращен следующий доступный день доставки, но не будет учитываться условие 3 рабочих дней (если за 3 дня до дня доставки перейдите к следующему дню доставки)

C.CLIVR3 - номер маршрута доставки ... Cal - таблица календаря ... ce.cfdcom - дата заказа ... Cal. [Номер дня] - день недели

Рассматривая воскресенье как 1 (дата 7)

Опять ваш вклад будет высоко оценен

Rgds,

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