如何根据某些条件从日历中获取下一个固定的发货日期

时间:2019-03-29 16:00:38

标签: sql-server date

我是SQL查询的新手,需要一些帮助来构建一个查询,该查询将从ERP取得日期,并根据以下信息为我提供从订购日期起的下一个可用交货日期(固定):

为客户分配交货日期:星期一(交货路线1)星期二(交货路线2和3)...等。 在下一个可用交货日之前3个工作日在系统中输入的订单将移至下一个可用日期。

因此,4月11日(星期四)为周一交付的客户下的订单将在4月22日(星期一)而非15日交付。

您可能会问为什么您不调整ERP本身中的日期...那是一个旧的FOXPRO DB,这里没有人想弄弄我们最后一项技术编写的功能。我们计划在未来12到18个月内停用该ERP……因此我们正尝试使用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。[day No]是工作日

将星期日视为1(第一个日期为7)

再次感谢您的投入

rgds

0 个答案:

没有答案