向datesql添加整数值

shstlldc  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(372)

在带有microsoft query的excel中,有一列格式为“jm5openordersday\u 0.confirmed\u del\u date”。
第二列(db2artstatday\u 0.total\u rep\u leadtime)包含天数,格式为数字,例如“40”、“10”和“5”。
我们想创建一个过滤器,对点击的日期进行排序,例如:confirmed\u del\u date+“40”。
我和我的同事对sql的了解显然非常有限,但到目前为止,我们得出了:

SELECT
FROM
WHERE DB1ARTSTATDAY_0.MATNR = JM5OPENORDERSDAY_0.MATNR AND 
DB1ARTSTATDAY_0.PLANT = JM5OPENORDERSDAY_0.PLANT AND 
 ((JM5OPENORDERSDAY_0.CONFIRMED_DEL_DATE<(NOW()+DATEADD(DAY,DB1ARTSTATDAY_0.TOTAL_REP_LEADTIME, JM5OPENORDERSDAY_0.CONFIRMED_DEL_DATE)))

这个错误发生在最后一行,这是我们自己写的(非常令人惊讶)。
microsoft query中的图片:

错误:

zf9nrax1

zf9nrax11#

看起来你的错误与你如何操纵日期有关。从您的查询中,很难确切地理解您想要什么,但我相信您正在寻找类似以下内容的内容:

SELECT *
FROM DB1ARTSTATDAY_0 a
JOIN JM5OPENORDERSDAY_0 AS b ON a.MATNR = b.MATNR 
                       AND a.PLANT = b.PLANT 
WHERE b.REQUESTED_DEL_DATE < DATE_ADD(CURDATE(), INTERVAL a.TOTAL_REP_LEADTIME DAY)

这将选择今天的日期在确认的删除日期加上total\ rep\ leadtime列中的天数之后的值。
这里有一个更具可读性的例子:sqlfiddle
edit:我使用表名的别名使查询更具可读性。

相关问题