2015-10-16 37 views
0

我在Access2013中查詢得很好。然後我添加了一個標準表達式「AND item_name = '553046514'」。它看起來像下面。後來我決定刪除那個附加的標準,但後來我得到了錯誤。我試圖改變這個標準在許多方面,但其中大部分帶來了同樣的錯誤:Access中的'條件表達式'中的'數據類型不匹配'

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

我想我找到了問題。對於某些項目(553046512),r_ship_date爲NULL,不能由DateValue或CDate處理。所以在這種情況下,數據類型不匹配錯誤將會發生。

我有不同的標準審判的行爲不同,因爲他們可能會或可能不會包括項目553046512.

0

我不知道在通常與一個子查詢的預期有關。你可能想改變

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*' 
+0

謝謝DRapp的回覆。我很抱歉,我不應該像這樣編寫查詢語句。我的意思是,這些是我添加的「AND item_name ='553046514'」的不同替代品。 –

相關問題