2016-11-22 10 views
0

SQL初心者ここに。私は、between関数を使ってAgeBracketsテーブルからAge at Listに基づいて適切なAge Categoryを取得しようとしています。範囲内の値を検索

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

から1の間にtraducedされるTO [AgeBrackets]の間..? – Mansoor

+0

これはどのような構文ですか? MS Access SQLは実際にはこのようには見えません。 –

+0

私はMS Accessを使用していますが、タイプミスがあります。選択部分は次のとおりです:SELECT TRANSACTIONS.ACCOUNT_NUM、TRANSACTIONS。[Age at List]、年齢カテゴリ。[AgeBrackets] – CellMation

答えて

0

あなたのSelect Query構文はMS AccessのSQL構文ではなく、Ageの区切りは正しく定式化されていません。

は下限と上限を含むものを含むものは、このSQLを使用して、2つのフィールドにAgeBracketsを分離してみてください。

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つのフィールドを使用しないでください。
正しい:
あなたの声明
数値1と数値2間
2000年と2016年の間
1〜5: [AgeBrackets]は、おおよそRDBMSを使用1

+0

ありがとう。これはうまくいった。 – CellMation

+0

優秀、これを正解とマークしてください。私たちはやっています。良い一日です。 – Lybren

関連する問題