【发布时间】:2018-10-19 12:57:01
【问题描述】:
在带有 Microsoft 查询的 excel 中,我们有一列格式为日期,称为“JM5OPENORDERSDAY_0.CONFIRMED_DEL_DATE”。
第二列 (DB1ARTSTATDAY_0.TOTAL_REP_LEADTIME) 包含日期,格式为数字,例如“40”、“10”和“5”。
我们想要创建一个过滤器,用于对日期超过的命中进行排序,例如:CONFIRMED_DEL_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)))
错误发生在最后一行,这是我们自己编写的(大惊喜)。
微软查询中的图片:
错误:
【问题讨论】:
-
您的查询有一些错误。例如“From”(来自什么?)和“Where”(为什么两个在哪里?)。
-
用您正在使用的数据库标记您的问题。
-
我可以输入完整的声明,这是一堵文字墙。但是我跳过了所有有效的无意义的东西,只是输入了错误发生的部分。
-
CONFIRMED_DEL_DATE和TOTAL_REP_LEADTIME是什么字段类型?我怀疑您的日期没有存储为日期,或者您的TOTAL_REP_LEADTIME不是数字(并且可能有一个包含非数字值的记录)。您不能对看起来像日期但不存储为日期的事物执行日期逻辑。你不能用不是数字的东西来做数学。另外,请分享您收到的错误。那里有丰富的信息。 -
检查我的编辑@JNevill