我有四张桌子。
- 司机考勤
- 司机信息
- 车辆详细信息
- 预订详情
我想根据某些条件写一个查询。
每当驱动程序绑定时,它将根据分配给驱动程序的车辆进行绑定。而且只有那个司机会出现在不是每周休息的下拉列表中,他们不在我将发送的特定日期休假。
tblDriverInformation
列是:1)id 2)每周休息tblDriverAttendance
列是---> 1) Driverid 2) Leave From Date 3) Leave To DateDriver Id
在上表中很常见。tblVehicle
列是---> 1)分配给>驱动程序(在上表中很常见)2)idtblBooking
列是---> 1)车辆 ID 2)从日期开始时间 3)结束日期和时间tblVehicle
(tblBooking
在两个表中,id 和车辆 ID 是通用键)
我已经准备了一个查询,但它没有给出正确的答案,而是因为我不了解如何输入tblDriverInformation
和tblDriverAttendance
条件。
我的查询是:
select
A.id,
(C.FName + '-' + C.LName) as Car_Driver
from
tblVehicle A
inner join
tblDriverInformation C on A.CarId = C.id
where
A.id not in (SELECT VehicleId
FROM tblBooking
join tblVehicle on C.id = A.AssignedDriver
WHERE A.id = @vechileid
and Convert(datetime,@FromDateWithStartTime) --start date
BETWEEN FromDateWithStartTime AND ToDateWithEndTime
OR Convert(datetime,@ToDateWithEndTime) --endDate
BETWEEN FromDateWithStartTime AND ToDateWithEndTime
or FromDateWithStartTime
BETWEEN Convert(datetime,@FromDateWithStartTime) -- startdate
AND Convert(datetime,@ToDateWithEndTime) -- enddate
or ToDateWithEndTime
BETWEEN Convert(datetime,@FromDateWithStartTime) -- start date
AND Convert(datetime,@ToDateWithEndTime) -- enddate