2016-11-22 171 views
0

SQL新手在這裏。我正在嘗試使用between函數根據AgeBrackets表中的年齡在列表中獲取適當的年齡類別。查找範圍內的值

GetAgeCategory查詢:

SELECT TRANSACTIONS.ACCOUNT_NUM, TRANSACTIONS.Age at List, Age Category.AgeBrackets 
FROM TRANSACTIONS, AgeBrackets 
WHERE 
(((TRANSACTIONS.Age at List) Between [AgeBrackets].FROM and [AgeBrackets].TO)); 

我做的事務表計數,並且有該表上的更多的記錄相比GetAgeCategory查詢。由於某些原因,該查詢將從TRANSACTIONS表中排除記錄。我究竟做錯了什麼?

+0

哪個RDBMS使用..? – Mansoor

+0

這是什麼樣的語法? MS Access SQL並不像這樣。 –

+0

我正在使用MS Access,有一個錯字。選擇部分應該是:SELECT TRANSACTIONS.ACCOUNT_NUM,TRANSACTIONS。[Age at List],Age Category。[AgeBrackets] – CellMation

回答

0

您的選擇查詢語法不是MS訪問的SQL語法,並且您的Age的定義沒有正確制定。

嘗試分離AgeBrackets分爲兩個區域,包含下邊界之一,一個包含上邊界,然後使用這個SQL:

SELECT TRANSACTIONS.ACCOUNT_NUM, TRANSACTIONS.Age at List, Age Category.AgeBracketsLower, Age Category.AgeBracketsUpper 
FROM TRANSACTIONS, AgeBrackets 
WHERE 
(((TRANSACTIONS.Age at List) Between [AgeBracketsLower] TO [AgeBracketsUpper])); 

你必須使用之間時,建立明確的下限和上限。您不應該爲兩個邊界使用一個字段,因爲訪問不會區分差異。
正確:
1和5之間
之間2000年和2016年
數字1和數字2之間
你聲明: 之間[AgeBrackets]至[AgeBrackets]大致traduced之間1對1

+0

謝謝。這工作。 – CellMation

+0

非常好,請將此標記爲正確答案,我們完成了,祝你有個美好的一天。 – Lybren