SQL新手在这里。我试图使用Between函数从AgeBrackets表中获取基于Age at List的相应年龄类别。
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));
我对TRANSACTIONS表进行了计数,与GetAgeCategory查询相比,该表上有更多记录。由于某种原因,查询将从TRANSACTIONS表中排除记录。我做错了什么?
答案 0 :(得分: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年间
在number1和number2之间
你的陈述:
在[AgeBrackets] TO [AgeBrackets]之间粗略地被描述为1到1之间