私は車両予約システムに取り組んでおり、VehicleBookingStatus と VehicleDetails という名前の 2 つのテーブルがあります。
Vehicle_Id が共通であることにより、プライマリー フォーリン コンセプトとリンクされます。
私の車両 1 (ID) は 1 月 5 日から 1 月 10 日まで予約されています。そのため、空室状況に基づいて結果を得ることができる 2 つのテーブルの結合クエリが必要です。
例: 車両は 3 つの条件で利用できません。
- 日付は 1 月 3 日から 1 月 7 日です
- 日付は 1 月 7 日から 1 月 13 日です。
- 開催日は1月3日~1月15日。
以下のように SP を作成しましたが、必要な出力が得られません。
Select
VehicleDetails.Vehicle_Id,
VehicleDetails.Vehicle_Name,
VehicleDetails.Vehicle_Capacity
from VehicleDetails
left join VehicleBookingStatus on
VehicleDetails.Vehicle_Id = VehicleBookingStatus.Vehicle_ID
where
((@UserDate NOT between VehicleBookingStatus.Assign_Date and VehicleBookingStatus.Return_Date)
AND
(@UserEndDate not between VehicleBookingStatus.Assign_Date and VehicleBookingStatus.Return_Date))
OR
((@UserDate not between VehicleBookingStatus.Assign_Date and VehicleBookingStatus.Return_Date)
and (@UserEndDate > VehicleBookingStatus.Return_Date))
@UserDate と @UserEndDate はユーザーによって提供されます。
ありがとう。