我有四张桌子
car_ registration_no, class, type_code
)rent_date, car_registration_no, rent_location_code, return_location_code
)type_code, make, model
)location_code, branch_name
)我需要一个查询来显示按地点租借的最受欢迎的汽车。 我需要一个查询来显示上个月每个位置的总租金?
到目前为止我的代码如下,但我无法完成它:
SELECT car.class, car.type_code , type.make, type.model
FROM car , type, rental_history
where rental_history.car_registration_no = car.car_registration_no
and car.type_code = type.type_code
答案 0 :(得分:4)
您需要加入表并计算数字。让我们从更简单的查询开始,为您指明正确的方向。
这将显示每个位置租用“type_code”汽车的次数(未经测试,可能包含错误)
SELECT
count(car.car_registration_no) as rental_num,
car.type_code,
rental_history.rent_location_code
FROM car
LEFT JOIN rental_history ON (rental_history.car_registration_no = car.car_registration_no)
GROUP BY car.type_code, rental_history.rent_location_code;
我在这里使用左连接,因为可能有没有租用的车并且没有任何历史记录。而不是没有出现,租金数量为“0”。
修改强>
对于第二个查询,它实际上非常简单。您需要按位置分组,过滤日期并使用COUNT(再次,未经测试):
SELECT
count(rental_history.car_registration_no) as rental_num,
rental_history.rent_location_code
FROM rental_history
WHERE rent_date >= '2012-03-01' AND rent_date < '2012-04-01'
GROUP BY rental_history.rent_location_code;
答案 1 :(得分:0)
加入所有表并使用计数..!