我有一个查询,我已经工作了几个小时,似乎无法让它工作。 查询是生成已花费>的客户列表过去365天内€100。我正在创建一个视频租赁数据库..
这是我已经走了多远,但似乎无法将数据与date_rented数据表链接在一起。
SELECT CUST_ID, CUSTOMER_SPEND
FROM ACCOUNT_TEST
WHERE CUSTOMER_SPEND > 100;
我正在使用的表是cust_id,customer_spend,date_rented和account_test
答案 0 :(得分:2)
不要试图回答(有点)提出的问题,也许有必要退后一步,看看(显然)期望的结果,并说明如何实现。目前,我只会从一个应该是数字的表中查看一个表。此表将包含个人客户租赁的详细信息:
customer_id
date_rented
cost
肯定需要更多字段,但这些字段似乎涵盖了我们对此查询的关注。从这里,我们想要一个至少花费100个(任何单位cost
所在的)的客户列表,以及每个客户花费的金额。唯一有点棘手的部分是我们不能在sum(customer_paid)
子句中使用where
这样的聚合,所以我们将其放在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的。