1

我有四张桌子

  1. 汽车( car_ registration_no, class, type_code)
  2. 出租历史( rent_date, car_registration_no, rent_location_code, return_location_code)
  3. 输入( type_code, make, model)
  4. 位置( 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
4

2 回答 2

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;
于 2012-04-21T11:21:27.243 回答
0

加入所有表并使用计数..!

于 2012-04-21T10:43:03.250 回答