【问题标题】:Calculate Equation From Seperate Tables Data从单独的表数据计算方程
【发布时间】:2020-02-15 07:15:35
【问题描述】:

我正在从事我的高中项目,并正在向社区寻求帮助! (因为我的老师不知道我的问题的答案)。

我有一个简单的“产品”表,如下所示:

我还有一个如下所示的“订单”表:

有没有一种方法可以在“订单”表中创建一个名为“总成本”的字段,并使其自动计算所有选定产品的总成本?

【问题讨论】:

  • 请向我们提供您如何创建 Products 和 Orders 表的 SQL 命令。
  • 坏主意。使用查询进行计算。
  • use text, not images/links, for text--including tables & ERDs。转述或引用其他文本。只提供您需要的东西并将其与您的问题联系起来。仅将图像用于无法表达为文本或增强文本的内容。无法搜索或剪切和粘贴图像。在图片中包含图例/键和说明。
  • 许多 SQL DBMS 具有“计算”/“计算”列,其行的值由 DBMS 作为行列的函数来计算。当然,它们的使用与特定 DBMS 的其他细节相互作用。不幸的是,对这种完整性和原子性的支持通常得不到很好的支持。 (没有有意义的 NF 违规,因为具有此类列的表只是表在没有列的情况下的视图。)

标签: sql database ms-access


【解决方案1】:

首先,我建议不要存储计算值,并且强烈建议不要使用calculated fields in tables。一般情况下,calculations should be performed by queries

我也强烈建议不要使用多值字段,因为您的图像似乎显示。


一般来说,当遵循database normalisation 的规则时,大多数销售数据库的结构都非常相似,包含以下主要表格(以及其他表格):

  • 产品(又名库存物品)
  • 客户
  • 订单页眉
  • 订单行(又名订单明细)

作为 MS Access 模板免费提供的经典 Northwind sample database 是一个值得您学习的好例子。

通过上述结构,观察每个表都有一个用途,每个记录存储与单个实体相关的信息(无论是单个产品,单个客户、单个订单或单个订单行)。

例如,你可能有类似的东西:

产品

  • 主键:Prd_ID
+--------+-----------+-----------+
| Prd_ID | Prd_Desc  | Prd_Price |
+--------+-----------+-----------+
|      1 | Americano | $8.00     |
|      2 | Mocha     | $6.00     |
|      3 | Latte     | $5.00     |
+--------+-----------+-----------+

客户

  • 主键:Cus_ID
+--------+--------------+
| Cus_ID |   Cus_Name   |
+--------+--------------+
|      1 | Joe Bloggs   |
|      2 | Robert Smith |
|      3 | Lee Mac      |
+--------+--------------+

订单页眉

  • 主键:Ord_ID
  • 外键:Ord_Cust
+--------+----------+------------+
| Ord_ID | Ord_Cust |  Ord_Date  |
+--------+----------+------------+
|      1 |        1 | 2020-02-16 |
|      2 |        1 | 2020-01-15 |
|      3 |        2 | 2020-02-15 |
+--------+----------+------------+

订单行

  • 主键:Orl_Order + Orl_Line
  • 外键:Orl_Order, Orl_Prod
+-----------+----------+----------+---------+
| Orl_Order | Orl_Line | Orl_Prod | Orl_Qty |
+-----------+----------+----------+---------+
|         1 |        1 |        1 |       2 |
|         1 |        2 |        3 |       1 |
|         2 |        1 |        2 |       1 |
|         3 |        1 |        1 |       4 |
|         3 |        2 |        3 |       2 |
+-----------+----------+----------+---------+

您还可以选择将产品描述和价格存储在订单行记录中,以便在销售点保留这些信息,因为Products 表中的信息可能会随着时间而改变。

【讨论】:

    猜你喜欢
    • 2014-10-06
    • 2017-09-30
    • 2016-08-16
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多