有時你可以使用別名「輸入參數值」輸入框中在查詢中,有時不會。在你的情況,下面應該工作(我也清理了您的GROUP BY/HAVING場更合適的WHERE子句):
SELECT Mid([StockNum],1,9) AS StockTrim
FROM POs LEFT JOIN [STOCK DICTIONARY]
ON Mid(POs.[StockNum],1,9) = [STOCK DICTIONARY].[Stock]
WHERE [STOCK DICTIONARY].Stock Is Null
GROUP BY Mid([StockNum],1,9)
瞭解時,你可以在Access查詢中使用別名,當你不能是一種黑暗的藝術。一般而言,如果在查詢計劃中稍後出現,則可能會使用別名。例如,你可以使用:
SELECT Mid([StockNum],1,9) AS StockTrim, "Trim #:" & StockTrim AS StockTrimNumber
的StockTrimNumber場,這比StockTrim計算字段樣本SELECT子句發生以後,可以用在自己的領域定義StockTrim計算領域。
在你的情況下,連接發生在任何字段被計算或返回之前,所以你需要在你的JOIN子句中重複字段定義。同樣,如果您想根據計算出的字段進行過濾,則需要使用字段定義本身(例如,WHERE Mid([StockNum],1,9) LIKE "???XYZ???"
),但單獨使用別名將失敗(例如,WHERE StockTrim Like "???XYZ???"
)。
我得到了一個語法錯誤:查詢表達式中Mid([StockNum],1,9)其中[STOCK DICTIONARY] .Stock爲空「'(缺少運算符)'。如果我將'Where'更改爲'Having',則會顯示以下消息:'您嘗試執行的查詢不包含表達式'[STOCK DICTIONARY] .Stock Is Null'作爲聚合函數的一部分。「# – Rick
對不起,我混淆了WHERE和GROUP BY子句的順序。我更新了我的答案。請嘗試一下,讓我知道它是否有效。 – mwolfe02