我是SQL的新手,我需要在学校进行这项练习:“列出评价最高等级的评论(或评论)的客户名称,CD标题和评级”。
数据库有5个表:
CDTitles, Customers, Reviews, OrderLines, Orders
客户的名称位于Customers
表(2列:“firstname”和“lastname”)中,CDTitles
表中的CD标题具有“title”和“rating”在评论表
这就是我得到的:
SELECT MAX(rating), firstname, lastname, title
FROM Reviews, Customers, CDTitles
WHERE Reviews.customerID = Customers.customerID
AND Reviews.catalogNumber = CDTitles.catalogNumber;
虽然我不断收到此错误:在聚合和分组表达式中,SELECT子句只能包含聚合和分组表达式。 [Select clause = ,firstname
]。
任何帮助都会非常感激。
PS:我需要使用Microsoft Webmatrix。
答案 0 :(得分:0)
您已使用聚合函数,但未指定分组。
添加GROUP BY
子句:
SELECT
MAX(rating), firstname, lastname, title
FROM Reviews, Customers, CDTitles
WHERE Reviews.customerID = Customers.customerID
AND Reviews.catalogNumber = CDTitles.catalogNumber
GROUP BY firstname, lastname, title -- Added this line
作为一种风格问题,你应该表达现代风格的连接:
SELECT
MAX(rating), firstname, lastname, title
FROM Reviews
JOIN Customers ON Reviews.customerID = Customers.customerID
JOIN CDTitles ON Reviews.catalogNumber = CDTitles.catalogNumber
GROUP BY firstname, lastname, title