【发布时间】:2011-12-15 18:54:43
【问题描述】:
我有一个名为 Reviewer Score Averages 的 ACCESS 表,其中包含个人完成的公司评论的信息,结构如下:
ID |审稿人 |公司 |点评评分
Company 字段只能包含四个值:
星巴克
麦当劳
绿山
驯鹿
我们有一个 SQL 查询,它对给定审阅者的所有 ReviewScores 进行平均,但想要对其进行修改,以便它也计算除 CARIBOU 以外的公司的所有 ReviewScores 的平均值。
原始的功能查询是:
SELECT [Reviewer Score Averages].Reviewer,
Reviewers.[Last Name] & ", " & [First Name] AS Name,
Reviewers.[Email Address],
Avg([Reviewer Score Averages].[1stReviewScore]) AS AvgOfAllReviews;
目前无法使用的编辑版本是:
SELECT [Reviewer Score Averages].Reviewer,
Reviewers.[Last Name] & ", " & [First Name] AS Name,
Reviewers.[Email Address],
Avg([Reviewer Score Averages].[1stReviewScore]) AS AvgOfAllReviews,
Avg([Reviewer Score Averages].[1stReviewScore]
WHERE [Reviewer Score Averages].[Company] = 'STARBUCKS' OR 'MCDONALDS' OR 'GREENMOUNTAIN') AS AvgOfNonCaribou;
当我尝试运行此代码时,我收到一条错误消息,提示我缺少一个运算符:我查看了 Microsoft 的 documentation 的 WHERE 语法,但我没有看到任何明显的内容不见了。
这是 Access 2003 数据库中的一个表。
我做错了什么?我在滥用 WHERE 吗?我的语法错了吗?我错过了什么吗?有没有更好的方法来解决这个问题?
非常感谢您的帮助。
【问题讨论】:
-
我们遗漏了一些细节,尤其是
FROM子句,它可以揭示表[Reviewer Score Averages]和Reviewers的连接方式,而GROUP BY子句也很有帮助。理想情况下,您会发布表架构、测试数据和预期结果:)