| 1 | CREATE VIEW vw_airport_infrastructure AS
|
|---|
| 2 | SELECT ap.AirportName, ap.IataCode, ap.OperationalStatus,
|
|---|
| 3 | COUNT(DISTINCT t.TerminalId) AS Terminals,
|
|---|
| 4 | COUNT(DISTINCT g.GateId) AS Gates,
|
|---|
| 5 | COUNT(DISTINCT r.RunwayId) AS Runways,
|
|---|
| 6 | COUNT(DISTINCT tx.TaxiwayId) AS Taxiways
|
|---|
| 7 | FROM Airport ap
|
|---|
| 8 | LEFT JOIN Terminal t ON ap.AirportId = t.AirportId
|
|---|
| 9 | LEFT JOIN Gate g ON t.TerminalId = g.TerminalId
|
|---|
| 10 | LEFT JOIN Runway r ON ap.AirportId = r.AirportId
|
|---|
| 11 | LEFT JOIN Taxiway tx ON ap.AirportId = tx.AirportId
|
|---|
| 12 | WHERE ap.AirportId IN (1, 2, 3, 5, 8, 17)
|
|---|
| 13 | GROUP BY ap.AirportId, ap.AirportName, ap.IataCode, ap.OperationalStatus;
|
|---|
| 14 |
|
|---|
| 15 | CREATE VIEW vw_maintenance_overview AS
|
|---|
| 16 | SELECT am.MaintenanceId, am.MaintenanceType, am.Status,
|
|---|
| 17 | am.StartDate, am.EndDate, am.DurationMinutes, am.MaintenanceCost,
|
|---|
| 18 | ac.AircraftModel, ac.RegistrationNumber,
|
|---|
| 19 | ap.AirportName,
|
|---|
| 20 | e.FirstName || ' ' || e.LastName AS MechanicName
|
|---|
| 21 | FROM AircraftMaintenance am
|
|---|
| 22 | JOIN Aircraft ac ON am.AircraftId = ac.AircraftId
|
|---|
| 23 | LEFT JOIN Airport ap ON am.AirportId = ap.AirportId
|
|---|
| 24 | LEFT JOIN WorksOn wo ON am.MaintenanceId = wo.MaintenanceId
|
|---|
| 25 | LEFT JOIN Employee e ON wo.EmployeeId = e.EmployeeId;
|
|---|
| 26 |
|
|---|
| 27 |
|
|---|
| 28 | CREATE VIEW vw_aircraft_status AS
|
|---|
| 29 | SELECT ac.AircraftId, ac.AircraftModel, ac.RegistrationNumber,
|
|---|
| 30 | ac.Status, ac.LastInspectionDate, ac.Capacity,
|
|---|
| 31 | at2.Manifacturer, at2.Category,
|
|---|
| 32 | am.MaintenanceType, am.Status AS MaintenanceStatus
|
|---|
| 33 | FROM Aircraft ac
|
|---|
| 34 | LEFT JOIN AircraftType at2 ON ac.AircraftTypeId = at2.AircraftTypeId
|
|---|
| 35 | LEFT JOIN AircraftMaintenance am
|
|---|
| 36 | ON ac.AircraftId = am.AircraftId
|
|---|
| 37 | AND am.Status IN ('Scheduled', 'In Progress');
|
|---|
| 38 |
|
|---|
| 39 | CREATE VIEW vw_departures_board AS
|
|---|
| 40 | SELECT f.FlightNumber, f.DepartureTime, f.OperatingStatus,
|
|---|
| 41 | a_dest.AirportName AS Destination,
|
|---|
| 42 | g.GateCode, t.TerminalName,
|
|---|
| 43 | r.RunwayName, tx.TaxiwayName,
|
|---|
| 44 | d.Status AS DepartureStatus
|
|---|
| 45 | FROM Departures d
|
|---|
| 46 | JOIN Flights f ON d.FlightId = f.FlightId
|
|---|
| 47 | JOIN Airport a_dest ON d.DestinationAirportId = a_dest.AirportId
|
|---|
| 48 | JOIN Gate g ON d.GateId = g.GateId
|
|---|
| 49 | JOIN Terminal t ON g.TerminalId = t.TerminalId
|
|---|
| 50 | JOIN Runway r ON d.RunwayId = r.RunwayId
|
|---|
| 51 | LEFT JOIN Taxiway tx ON d.TaxiwayId = tx.TaxiwayId;
|
|---|
| 52 |
|
|---|
| 53 | CREATE VIEW vw_arrivals_board AS
|
|---|
| 54 | SELECT f.FlightNumber, f.ArrivalTime, f.OperatingStatus,
|
|---|
| 55 | a_orig.AirportName AS Origin,
|
|---|
| 56 | g.GateCode, t.TerminalName,
|
|---|
| 57 | r.RunwayName, tx.TaxiwayName,
|
|---|
| 58 | ar.Status AS ArrivalStatus
|
|---|
| 59 | FROM Arrivals ar
|
|---|
| 60 | JOIN Flights f ON ar.FlightId = f.FlightId
|
|---|
| 61 | JOIN Airport a_orig ON ar.OriginAirportId = a_orig.AirportId
|
|---|
| 62 | JOIN Gate g ON ar.GateId = g.GateId
|
|---|
| 63 | JOIN Terminal t ON g.TerminalId = t.TerminalId
|
|---|
| 64 | JOIN Runway r ON ar.RunwayId = r.RunwayId
|
|---|
| 65 | LEFT JOIN Taxiway tx ON ar.TaxiwayId = tx.TaxiwayId;
|
|---|
| 66 |
|
|---|
| 67 | CREATE OR REPLACE VIEW vw_boarding_pass_details AS
|
|---|
| 68 | SELECT bp.PassId, bp.BoardingTime, bp.Status AS BoardingStatus,
|
|---|
| 69 | p.FirstName, p.LastName,
|
|---|
| 70 | t.SeatNumber, t.Class,
|
|---|
| 71 | f.FlightNumber, f.DepartureTime,
|
|---|
| 72 | g.GateCode, ter.TerminalName,
|
|---|
| 73 | l.LuggageType, l.Weight, l.Status AS LuggageStatus
|
|---|
| 74 | FROM BoardingPass bp
|
|---|
| 75 | JOIN Ticket t ON bp.TicketId = t.TicketId
|
|---|
| 76 | JOIN Passenger p ON t.PassengerId = p.PassengerId
|
|---|
| 77 | JOIN Flights f ON t.FlightId = f.FlightId
|
|---|
| 78 | JOIN Gate g ON bp.GateId = g.GateId
|
|---|
| 79 | JOIN Terminal ter ON g.TerminalId = ter.TerminalId
|
|---|
| 80 | LEFT JOIN Luggage l ON t.LuggageId = l.LuggageId;
|
|---|
| 81 |
|
|---|
| 82 |
|
|---|
| 83 | CREATE VIEW vw_ticket_info AS
|
|---|
| 84 | SELECT
|
|---|
| 85 | p.FirstName,
|
|---|
| 86 | p.LastName,
|
|---|
| 87 | p.PassportNumber,
|
|---|
| 88 | t.TicketId,
|
|---|
| 89 | t.SeatNumber,
|
|---|
| 90 | t.Class,
|
|---|
| 91 | t.TicketPrice,
|
|---|
| 92 | f.FlightNumber,
|
|---|
| 93 | a.Name AS AirlineName,
|
|---|
| 94 | f.DepartureTime,
|
|---|
| 95 | f.ArrivalTime,
|
|---|
| 96 | f.OperatingStatus,
|
|---|
| 97 | l.status,
|
|---|
| 98 | l.weight,
|
|---|
| 99 | l.checkedat,
|
|---|
| 100 | l.luggagetype,
|
|---|
| 101 | l.luggageid
|
|---|
| 102 | FROM Ticket t
|
|---|
| 103 | JOIN Passenger p ON t.PassengerId = p.PassengerId
|
|---|
| 104 | JOIN Flights f ON t.FlightId = f.FlightId
|
|---|
| 105 | JOIN Airline a ON f.AirlineId = a.AirlineId
|
|---|
| 106 | JOIN luggage l ON l.luggageid = t.luggageid;
|
|---|
| 107 |
|
|---|
| 108 | CREATE VIEW vw_flight_overview AS
|
|---|
| 109 | SELECT f.FlightId, f.FlightNumber, f.FlightClass, f.OperatingStatus,
|
|---|
| 110 | f.DepartureTime, f.ArrivalTime,
|
|---|
| 111 | a_orig.AirportName AS Origin, a_dest.AirportName AS Destination,
|
|---|
| 112 | al.Name AS Airline,
|
|---|
| 113 | ac.AircraftModel, ac.RegistrationNumber
|
|---|
| 114 | FROM Flights f
|
|---|
| 115 | JOIN Airport a_orig ON f.OriginAirportId = a_orig.AirportId
|
|---|
| 116 | JOIN Airport a_dest ON f.DestinationAirportId = a_dest.AirportId
|
|---|
| 117 | JOIN Airline al ON f.AirlineId = al.AirlineId
|
|---|
| 118 | JOIN Aircraft ac ON f.AircraftId = ac.AircraftId;
|
|---|
| 119 |
|
|---|
| 120 | CREATE VIEW vw_passenger_flight_history AS
|
|---|
| 121 | SELECT
|
|---|
| 122 | p.FirstName,
|
|---|
| 123 | p.LastName,
|
|---|
| 124 | p.PassportNumber,
|
|---|
| 125 |
|
|---|
| 126 | f.FlightNumber,
|
|---|
| 127 | f.DepartureTime,
|
|---|
| 128 | f.ArrivalTime,
|
|---|
| 129 | f.OperatingStatus,
|
|---|
| 130 |
|
|---|
| 131 | t.SeatNumber,
|
|---|
| 132 | t.Class,
|
|---|
| 133 | t.TicketPrice,
|
|---|
| 134 | t.Status AS TicketStatus
|
|---|
| 135 | FROM Ticket t
|
|---|
| 136 | JOIN Passenger p ON t.PassengerId = p.PassengerId
|
|---|
| 137 | JOIN Flights f ON t.FlightId = f.FlightId;
|
|---|
| 138 |
|
|---|
| 139 | CREATE VIEW GateOccupancyView AS
|
|---|
| 140 | SELECT
|
|---|
| 141 | g.GateId,
|
|---|
| 142 | g.GateCode,
|
|---|
| 143 | t.TerminalId,
|
|---|
| 144 | t.TerminalName,
|
|---|
| 145 | t.TerminalCode,
|
|---|
| 146 | ap.AirportName,
|
|---|
| 147 | f.FlightId,
|
|---|
| 148 | f.FlightNumber,
|
|---|
| 149 | al.Name AS AirlineName,
|
|---|
| 150 | d.DepartureTime,
|
|---|
| 151 | d.Status AS DepartureStatus,
|
|---|
| 152 | ap_dest.AirportName AS Destination,
|
|---|
| 153 | g.Status AS GateStatus
|
|---|
| 154 |
|
|---|
| 155 | FROM Gate g
|
|---|
| 156 | JOIN Terminal t ON t.TerminalId = g.TerminalId
|
|---|
| 157 | JOIN Airport ap ON ap.AirportId = t.AirportId
|
|---|
| 158 | JOIN Departures d ON d.GateId = g.GateId
|
|---|
| 159 | JOIN Flights f ON f.FlightId = d.FlightId
|
|---|
| 160 | JOIN Airline al ON al.AirlineId = f.AirlineId
|
|---|
| 161 | JOIN Airport ap_dest ON ap_dest.AirportId = d.DestinationAirportId
|
|---|
| 162 | WHERE d.Status IN ('Scheduled', 'Go to gate', 'Boarding'); |
|---|