我有一个有以下表格的场景。问题是,当一辆车在表tBooking中预订时,这是由于以下情况所致。
用户在分公司预订汽车(分公司是存放汽车的公司办公室所在地)

如何编写查询,以便按日期范围和所请求的位置获得下一辆可用的汽车?
假设我正在B分局寻找可用的汽车,这就是我到目前为止尝试过的:
SELECT * FROM tVehicle WHERE VehicleID NOT IN (
SELECT VehicleID FROM tBooking
WHERE StartDate >= @requestedDate
AND EndDate <= @requestedDate
)
AND BranchId IN (
SELECT BranchId FROM tBooking WHERE EndBranchId = @branchId
-- I dont know how to write correct logic for the dates
AND StartDate >= @requestedDate
AND EndDate <= @requestedDate
)发布于 2020-12-09 13:14:23
假设tVehicle.BranchId包含车辆当前所在的分支,而B分支的branchId为2,这将起到作用
DECLARE @branchId int= 2;
DECLARE @availableDate date= '2020-12-09';
SELECT tv.*
FROM tVehicle tv
WHERE tv.BranchId=@branch
AND NOT EXISTS(SELECT 1 FROM tBooking tb WHERE tb.VehicleId=tv.VehicleId AND @availableDate BETWEEN tb.StartDate AND tb.EndDate);https://dba.stackexchange.com/questions/281054
复制相似问题