我正在MS Access 2010中创建一个故事数据库。其中一个输入字段是字数(以千计)。我希望我的数据库根据单词计数自动将每个故事放在一个“长度”类别(短/长/等)中,我希望这些类别可以调整。
令人激动的是,这与将数字等级分类为A / B / C /等几乎完全相同,但我无法在任何地方找到答案。我认为它需要某种BETWEEN查询。
相关的表格和字段是
tblStories
StoryID ...author, title... WordCount
1 0,7
2 21
3 9
...
tblLength
LengthID Length Min Max
1 Flash 0 0,7
2 Short 0,8 8
3 Long 9 18
4 Novella 19 50
5 Novel 50
[注意:当< 1时,WordCount有一个小数位,并且是一个整数,所以中间值不是问题。]
我希望数据库知道故事1是Flash,故事2是Novella,故事3是长。
我也希望能够在tblLength中改变我的(有点武断的)单词边界,并让故事长度类相应地改变;例如,如果我认为9k现在是“short”的最大值,那么数据库应该将Story 3识别为Short。
在表单上,您可以:
字数会覆盖以前输入的任何类别,并锁定控件。
免责声明:我觉得这个问题的答案必须非常明显,但是我一直在学习这些东西 - 我现在可以用表格填充,但这是我的第一个查询。道歉为愚蠢。
答案 0 :(得分:0)
你在寻找这样的东西:
SELECT *
FROM
tblStories s INNER JOIN
tblLength l ON s.WordCount BETWEEN l.min AND l.max
答案 1 :(得分:0)
Access SQL显然不喜欢JOIN子句中的BETWEEN,但这似乎有效:
[tblStories]
StoryID WordCount
------- ---------
1 0.7
2 21
3 9
[tblLength]
LengthID Length WordCountMin WordCountMax
-------- ------- ------------ ------------
1 Flash 0 0.7
2 Short 0.8 8
3 Long 9 18
4 Novella 19 50
5 Novel 51 9999999999
查询
SELECT tblStories.StoryID, tblStories.WordCount, tblLength.Length
FROM
tblStories
INNER JOIN
tblLength
ON tblStories.WordCount >= tblLength.WordCountMin
AND tblStories.WordCount <= tblLength.WordCountMax
返回
StoryID WordCount Length
------- --------- -------
1 0.7 Flash
2 21 Novella
3 9 Long
如果我只是将[tblLength]中的数据编辑为
2 Short 0.8 9
3 Long 10 18
然后再次运行相同的查询
StoryID WordCount Length
------- --------- -------
1 0.7 Flash
2 21 Novella
3 9 Short