我在Access2013中有一个运行良好的查询。然后我添加了一个标准表达式" AND item_name = '553046514'
"。它看起来像下面。后来我决定删除添加的标准,但后来我收到了错误。我试图以多种方式改变这个标准,但大多数都带来了同样的错误:
AND item_name Not Like '000*'
AND item_name <> '0'
AND item_name like '000*'
AND item_name not in ('0')
AND item_name not in ('a', 'b')
AND item_name like '5*'
但那些工作:
AND item_name like '0*'
(什么都不返。但没有错误)
AND item_name like '4*'
(什么都不返回。但没有错误)
当我删除条件但将DataValue函数更改为Format()函数时,它甚至可以工作。但是在查询之上查询时会出现同样的错误。
我不知道出了什么问题,以及为什么数据类型有问题。
查询:
SELECT i.item_name AS ITEM, s.site_name AS DC, sum(r_quantity) AS R_DAY, sum(p_quantity) AS P_DAY, DateValue(r_ship_date) AS RQST_SP_DATE, DateValue(p_ship_date) AS PRMS_SP_DATE
FROM s, sos, i
WHERE sos.site_id = s.site_id
AND sos.item_id = i.item_id
AND item_name = '553046514'
AND s.site_name not like 'Agg-*'
AND sos.state = 'Open'
GROUP BY i.item_name, site_name, DateValue(r_ship_date), DateValue(p_ship_date)
ORDER BY i.item_name, site_name, DateValue(r_ship_date), DateValue(p_ship_date);
答案 0 :(得分:0)
我知道NOT IN通常与子查询的期望相关联。您可能想要从
更改AND item_name Not Like '000*'
AND item_name <> '0'
AND item_name like '000*'
AND item_name not in ('0')
AND item_name not in ('a', 'b')
AND item_name like '5*'
到
AND NOT item_name Like '000*'
AND item_name <> '0'
AND item_name like '000*'
AND NOT item_name in ('0')
AND NOT item_name in ('a', 'b')
AND item_name like '5*'
答案 1 :(得分:0)
我想我发现了这个问题。对于某个项目(553046512),r_ship_date为NULL,不能由DateValue或CDate处理。因此,在这种情况下,将会出现数据类型不匹配错误。
我的不同标准的审判行为不同,因为它们可能包括也可能不包括第553046512项。