Курсовая работа: Автоматизированная система бронирования авиабилетов
BEGIN
RETURN
convert(char(2),datediff(hh,@dateDeparture,@dateArrival))+':'+
convert(char(2),datediff(mi,@dateDeparture,@dateArrival)-
datediff(hh,@dateDeparture,@dateArrival)*60)
END
Данная функция возвращает продолжительность полета в виде строки из 5 символов в формате hh:mm.
Так же в базе не хранится информации о количестве свободных мест первого и второго класса на заданный рейс. Но данное значение для соответствующего класса можно вычислить, взяв общее количество мест класса, характерное для данной модели самолета, и вычтя из него количество забронированных мест. Подсчет количества забронированных мест идет суммированием по таблице заказов. Для вычисления свободных мест первого и второго класса созданы еще 2 скалярные функии: CountEmptyPlaces1cl и CountEmptyPlaces2cl.
CREATE FUNCTION [dbo].[CountEmptyPlaces1cl]
(
@flightID int
)
RETURNS int
BEGIN
DECLARE @count int;
IF EXISTS (SELECT OrderID FROM Orders WHERE FlightID=@flightID
AND Number1cl>0)
SELECT @count=Aircrafts.Count1
-(SELECT SUM(Number1cl) FROM Orders WHERE FlightID=@flightID)
FROM Flights,Aircrafts WHERE Flights.FlightID=@flightID
AND Flights.AircraftID=Aircrafts.AircraftID
ELSE
SELECT @count=Aircrafts.Count1
FROM Flights,Aircrafts WHERE Flights.FlightID=@flightID
AND Flights.AircraftID=Aircrafts.AircraftID
RETURN @count
END
CREATE FUNCTION [dbo].[CountEmptyPlaces2cl]
(