构建预订数据库的查询

时间:2013-04-24 20:08:36

标签: mysql sql database

我有一个保存汽车预订的数据库。我正在尝试编写一个查询,它将为我提供足够的信息来填充具有以下属性的视图:

  1. 前几个月(最多3个),即1月份行将是12月,11月,10月
  2. 当月保留最多的地点。
  3. 当月预订的数量。
  4. 当月保留的总小时数。
  5. 预订表格如下:

    ResID, PickUpDateTime, ReturnDateTime, LocationName, VehicleSno
    

    我现在已经尝试了两个小时来解决它,但我很难过。我有COUNT(*)语句来获取每个位置的小时数,但它有点关闭,因为它不受它应该属于的月份的限制。 :/我真的很讨厌约会。

    SELECT
        MONTH(PickupDateTime) AS Month,
        LocationName as Location,
        COUNT(*) AS NoOfRes,
        TIMESTAMPDIFF(HOUR, PickUpDateTime, ReturnDatetime) AS Hours   
    FROM
        Reservation   
    GROUP BY
        Location   
    ORDER BY
        NoOfRes DESC
    

1 个答案:

答案 0 :(得分:0)

要获取日期月份,您可以使用MONTH()功能。

因此,要获得2月份预订最多的位置,

select LocationName, count(*) num_reservations
  from reservation
 where month(PickUpDateTime) = 2 --This can be parameterized if needed
 group by LocationName
 order by num_reservations desc