我有一个查询,我已经处理了几个小时,但似乎不能让它工作。该查询将生成在过去365天内花费>100欧元的客户列表。我正在创建一个录像带租赁数据库..
这就是我已经走了这么远,但似乎无法将数据与date_rented数据表链接在一起。
SELECT CUST_ID, CUSTOMER_SPEND
FROM ACCOUNT_TEST
WHERE CUSTOMER_SPEND > 100;我正在使用的表有cust_id、customer_spend、date_rented和account_test
发布于 2011-03-03 01:53:29
与其试图回答(某种程度上)被问到的问题,不如退后一步,看看(显然)预期的结果,并展示如何实现这一目标。目前,我将只查看应该是数字的表中的一个。此表将包含单个客户租赁的详细信息:
customer_id
date_rented
cost当然需要更多的字段,但这些字段似乎涵盖了我们在此查询中所关心的内容。从这个列表中,我们需要一个至少花费了100 (无论cost是什么单位)的客户列表,以及每个客户花费的金额。唯一稍微棘手的部分是,我们不能在where子句中使用像sum(customer_paid)这样的聚合,所以我们将其放在having子句中。
select customer_id, sum(cost) as customer_paid
from rental_details
where to_days(now()) - to_days(date_rented) <= 365
group by customer_id
having customer_paid > 100作为一个快速警告,可能需要稍微调整一下才能使用MySQL --我最近写的大部分内容都是为SQL Server编写的。
https://stackoverflow.com/questions/5170644
复制相似问题