【发布时间】:2021-05-22 15:21:47
【问题描述】:
选择在 6 月份进行了 MAXIMUM 交易的客户的姓名、联系方式和邮政编码。
SELECT
Customer.customer_name,
Customer.customer_email,
Customer.customer_postcode
FROM
Customer
INNER JOIN
Sales on Customer.customer_id = Sales.customer_id
WHERE
MAX(Sales.customer_id) IN (SELECT COUNT((sales.customer_id)) AS 'transactions'
FROM sales
GROUP BY (sales.customer_id))
AND MONTH(date_purchased) = 6;
但我收到此错误:
消息 147,第 15 级,状态 1,第 4 行
聚合可能不会出现在 WHERE 子句中,除非它在 HAVING 子句或选择列表中包含的子查询中,并且被聚合的列是外部引用
【问题讨论】:
-
您在 GROUP BY 子句之后而不是在 WHERE 子句末尾添加了一个条件 (
and month(date_purchased)=6),并且还有第二个 FROM 子句。您应该在第一个 FROM 子句中添加一个 join 子句。 -
MONTH(date_purchased)这将包括任何一年的交易,只要月份是六月。这真的是你要使用的逻辑吗?
标签: sql sql-server database