【发布时间】:2017-08-05 23:57:57
【问题描述】:
对于我的标题含糊不清,我深表歉意,因为我总是很难描述在涉及 SQL 时需要做什么。我正在使用 microsoft access,我总共有 3 个表:Credits、Orders 和 Books,如下所示。我需要创建一个更新查询,根据每个学生订购的书籍和每本书的相应学分数量来更新每个学生的现有学分数量。
例如,学生 B-17 开始时有 24 个学分,但在更新查询之后它应该将学生的学分更改为 32。
学分表
Student ID Number of Credits
B-17 24
F-59 30
订单表
Student ID Book ID
B-17 101
B-17 102
F-59 101
F-59 105
图书桌
Book ID Book Title Credits
101 English I 3
102 Accounting 5
105 Calculus 5
这是我正在尝试的,但我在 Access 中不断收到语法错误。
UPDATE Credits c
SET [Number of Credits] = [Number of Credits] + (SELECT SUM(Credits)
FROM Orders o, Books b ON
o.[Book ID] = b.[Book ID] WHERE
c.[Student ID] = o.[Student ID])
WHERE c.[Student ID] = o.[Student ID];
【问题讨论】:
-
为什么 Credits 必须是表,而不是选择查询?