在這段MS Access Code中,我試圖獲取客戶註冊的MAX日期。首先,我必須轉換日期,以便它可以使用聚合函數。不幸的是,日期列中有些區域爲空。如何解決或補救錯誤:無效使用空值?
我收到錯誤由於某些記錄缺失日期而無效使用空。
我該如何補救,有沒有解決辦法?
下面是代碼:
SELECT CUSTOMER.FIRST_NAME,
MAX(DateSerial(CInt(Left([CUSTOMER.SIGNUP_DATE],4)),CInt(Mid([CUSTOMER.SIGNUP_DATE],5,2)),CInt(Right([CUSTOMER.SIGNUP_DATE],2)))) AS SIGN_DATE,
(DateSerial(CInt(Left([CUSTOMER.LEAVE_DATE],4)),CInt(Mid([CUSTOMER.LEAVE_DATE],5,2)),CInt(Right([CUSTOMER.LEAVE_DATE],2)))) AS LEV_DATE
FROM CUSTOMER
WHERE ((DateSerial(CInt(Left([CUSTOMER.SIGNUP_DATE],4)),CInt(Mid([CUSTOMER.SIGNUP_DATE],5,2)),CInt(Right([CUSTOMER.SIGNUP_DATE],2)))) <=Date())
AND ((DateSerial(CInt(Left([CUSTOMER.LEAVE_DATE],4)),CInt(Mid([CUSTOMER.LEAVE_DATE],5,2)),CInt(Right([CUSTOMER.LEAVE_DATE],2)))) =#012/31/2012#)
GROUP BY
CUSTOMER.FIRST_NAME,
CUSTOMER.SIGNUP_DATE,
CUSTOMER.LEAVE_DATE;
建議:創建一個視圖,說名爲'CurrentCustomers'那用空'LEAVE_DATE'過濾掉客戶,然後定位VIEW。但是你真的應該用實際的時間值永久替換那些與文本一樣的日期列,而不是試圖在飛行中這樣做。 – onedaywhen
謝謝!我正在考慮首先濾除空值而不是添加Aggregate,表格連接到Access,因此我必須將它們的文本值轉換爲日期。 – Asynchronous
當你把這些名字放在括號裏時,它能正常工作嗎?不應該例如'[CUSTOMER.SIGNUP_DATE]'是[CUSTOMER]。[SIGNUP_DATE]'而不是?我不是一個MS Access人員,所以請原諒,如果這似乎是一個愚蠢的問題。 –