0

車の予約を保持するデータベースがあります。ビューに次のプロパティを入力するのに十分な情報を提供するクエリを作成しようとしています。

  1. 前の月 (最大 3 か月)、つまり 1 月の行は、12 月、11 月、10 月となります。
  2. その月の予約数が最も多い場所。
  3. その場所、その月の予約数。
  4. その月にその場所で予約された合計時間数。

予約テーブルは次のように配置されます。

ResID, PickUpDateTime, ReturnDateTime, LocationName, VehicleSno

私はそれを解決するために2時間試みてきましたが、困惑しています. 各場所からの時間数を取得する 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
4

1 に答える 1

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
于 2013-04-24T20:16:49.640 に答える