0

亲爱的 stackoverflow 成员,

我正在为门票销售价格创建一个访问数据库。由于门票价格每年都在变化,我想创建数据库以访问基于月份的门票价格。

但问题是我如何查询数据库以检索基于特定月份的票价?我还附上了我的示例数据库的图像。 数据库 我还以文本格式上传了数据库。

公司:

  -------------------------------------------
    |     CompanyID      |    CompanyName     |
    -------------------------------------------
    | A                  | AAA                |
    -------------------------------------------
    | B                  | BBB                |
    -------------------------------------------
    | C                  | CCC                |
    -------------------------------------------
    | D                  | DDD                |
    -------------------------------------------
    | .                  | ..                 |
    -------------------------------------------
    | .                  | ..                 |
    -------------------------------------------
    | .                  | ..                 |
    -------------------------------------------
    | Z                  | ZZZ                |
    -------------------------------------------

票:

    ----------------------------------------------------------------------------------------------------------
|         ID         |     TicketType     |        2010        |        2011        |        2012        |
----------------------------------------------------------------------------------------------------------
| 001                | 3 months           |             $50.00 |             $55.00 |             $68.00 |
----------------------------------------------------------------------------------------------------------
| 002                | 2 Weeks            |             $10.00 |             $11.50 |             $13.10 |
----------------------------------------------------------------------------------------------------------
| 003                | Group ticket       |             $30.00 |             $32.00 |             $35.00 |
----------------------------------------------------------------------------------------------------------
| 004                | Night ticket       |              $7.00 |              $9.00 |             $11.00 |
----------------------------------------------------------------------------------------------------------
| 005                | 1 Day              |              $3.00 |              $5.00 |              $8.00 |
----------------------------------------------------------------------------------------------------------
| 006                | 1 Week             |              $8.00 |             $15.00 |             $12.00 |
----------------------------------------------------------------------------------------------------------
| 007                | 1 month            |             $19.00 |             $22.00 |             $25.00 |
----------------------------------------------------------------------------------------------------------
| 200                | Fun ticket         |             $11.00 |             $12.00 |             $14.00 |
----------------------------------------------------------------------------------------------------------
| AAA                | 001                |                    |            $100.00 |          $5,500.00 |
----------------------------------------------------------------------------------------------------------

问题是:我想访问基于月份的票价。例如,“2011 年 3 月”中 TicketID:“001”的价格。有了它,将计算基于特定月份售出的门票的月度帐户。

这些字段按年份列出,并在几个月内创建它会导致大量数据冗余或对未来的更新造成麻烦。

任何帮助将不胜感激。非常感谢您提前。

干杯!

4

1 回答 1

2

您的数据库结构阻止您这样做。票表甚至不在第一范式中。目前,每个新年您都需要添加一个新列来显示更新的定价。这更容易通过添加行而不是列来实现。

您需要创建另一个名为 TicketID 的表,该表具有 ID 和 TicketType。修改您的 Ticket 表,使其具有以下内容:ID、价格、date_effective。这将允许您像这样记录不断变化的价格

    1,50,1/1/2010
    1,51,2/1/2010
    1,52,8/15/2010
    1,55,1/1/2011

这将允许您在需要时更改价格,而无需添加额外的列。由于您将日期存储在最后一列中,因此您可以使用 Access 中的内置日期函数来创建查询。

于 2012-06-15T01:55:51.367 回答