如何根据wordcount将故事放入“长度”类别?

时间:2014-09-17 16:21:03

标签: sql database ms-access-2010

我正在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。

在表单上,​​您可以:

  • 输入字数(例如6k)或
  • 选择长度类别(“短”)

字数会覆盖以前输入的任何类别,并锁定控件。

免责声明:我觉得这个问题的答案必须非常明显,但是我一直在学习这些东西 - 我现在可以用表格填充,但这是我的第一个查询。道歉为愚蠢。

2 个答案:

答案 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