我想制作一份报告,告诉所有过去75天左右未被调用过的客户。我的专栏如下。
Customer# Customer_Name Phone_Number Call_Date Salesman
通话日期会提取客户被叫方的日期。
这是我当前的查询。
select customer_no
,Customer_name
,Phone_number
,max(Call_Date) as Call_date
,Salesman
from salescalls
where call_date <= current_date - 75
我遇到的问题是它正在拉动每一个客户并使用他们最后一次调用75天或更多天。
例如,当最后一个通话日期是6/4/14时,它会提取数字,并将通话日期列为11/10/13。
不应列出在过去75天内调用过的客户。所以为了防止这种情况,我试图在where子句中这样做。
Where max(call_date) <= current_date - 75
但这只是给我一个错误:
aggregates not allowed in WHERE clause
答案 0 :(得分:14)
您需要having
子句:
select customer_no, Customer_name, Phone_number, max(Call_Date) as Call_date,
Salesman
from salescalls
group by customer_no, Customer_name, Phone_number, Salesman
having max(call_date) <= current_date - 75;
您不能将聚合函数放在where
子句中。
答案 1 :(得分:5)
您需要将条件放在HAVING条款中。
having max(call_date) <= current_date - 75