DatabaseCreation: views.sql

File views.sql, 5.7 KB (added by 231146, 6 days ago)
Line 
1CREATE VIEW vw_airport_infrastructure AS
2SELECT 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
7FROM Airport ap
8LEFT JOIN Terminal t ON ap.AirportId = t.AirportId
9LEFT JOIN Gate g ON t.TerminalId = g.TerminalId
10LEFT JOIN Runway r ON ap.AirportId = r.AirportId
11LEFT JOIN Taxiway tx ON ap.AirportId = tx.AirportId
12WHERE ap.AirportId IN (1, 2, 3, 5, 8, 17)
13GROUP BY ap.AirportId, ap.AirportName, ap.IataCode, ap.OperationalStatus;
14
15CREATE VIEW vw_maintenance_overview AS
16SELECT 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
21FROM AircraftMaintenance am
22JOIN Aircraft ac ON am.AircraftId = ac.AircraftId
23LEFT JOIN Airport ap ON am.AirportId = ap.AirportId
24LEFT JOIN WorksOn wo ON am.MaintenanceId = wo.MaintenanceId
25LEFT JOIN Employee e ON wo.EmployeeId = e.EmployeeId;
26
27
28CREATE VIEW vw_aircraft_status AS
29SELECT 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
33FROM Aircraft ac
34LEFT JOIN AircraftType at2 ON ac.AircraftTypeId = at2.AircraftTypeId
35LEFT JOIN AircraftMaintenance am
36 ON ac.AircraftId = am.AircraftId
37 AND am.Status IN ('Scheduled', 'In Progress');
38
39CREATE VIEW vw_departures_board AS
40SELECT 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
45FROM Departures d
46JOIN Flights f ON d.FlightId = f.FlightId
47JOIN Airport a_dest ON d.DestinationAirportId = a_dest.AirportId
48JOIN Gate g ON d.GateId = g.GateId
49JOIN Terminal t ON g.TerminalId = t.TerminalId
50JOIN Runway r ON d.RunwayId = r.RunwayId
51LEFT JOIN Taxiway tx ON d.TaxiwayId = tx.TaxiwayId;
52
53CREATE VIEW vw_arrivals_board AS
54SELECT 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
59FROM Arrivals ar
60JOIN Flights f ON ar.FlightId = f.FlightId
61JOIN Airport a_orig ON ar.OriginAirportId = a_orig.AirportId
62JOIN Gate g ON ar.GateId = g.GateId
63JOIN Terminal t ON g.TerminalId = t.TerminalId
64JOIN Runway r ON ar.RunwayId = r.RunwayId
65LEFT JOIN Taxiway tx ON ar.TaxiwayId = tx.TaxiwayId;
66
67CREATE OR REPLACE VIEW vw_boarding_pass_details AS
68SELECT 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
74FROM BoardingPass bp
75JOIN Ticket t ON bp.TicketId = t.TicketId
76JOIN Passenger p ON t.PassengerId = p.PassengerId
77JOIN Flights f ON t.FlightId = f.FlightId
78JOIN Gate g ON bp.GateId = g.GateId
79JOIN Terminal ter ON g.TerminalId = ter.TerminalId
80LEFT JOIN Luggage l ON t.LuggageId = l.LuggageId;
81
82
83CREATE VIEW vw_ticket_info AS
84SELECT
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
102FROM Ticket t
103JOIN Passenger p ON t.PassengerId = p.PassengerId
104JOIN Flights f ON t.FlightId = f.FlightId
105JOIN Airline a ON f.AirlineId = a.AirlineId
106JOIN luggage l ON l.luggageid = t.luggageid;
107
108CREATE VIEW vw_flight_overview AS
109SELECT 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
114FROM Flights f
115JOIN Airport a_orig ON f.OriginAirportId = a_orig.AirportId
116JOIN Airport a_dest ON f.DestinationAirportId = a_dest.AirportId
117JOIN Airline al ON f.AirlineId = al.AirlineId
118JOIN Aircraft ac ON f.AircraftId = ac.AircraftId;
119
120CREATE VIEW vw_passenger_flight_history AS
121SELECT
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
135FROM Ticket t
136JOIN Passenger p ON t.PassengerId = p.PassengerId
137JOIN Flights f ON t.FlightId = f.FlightId;
138
139CREATE VIEW GateOccupancyView AS
140SELECT
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
155FROM Gate g
156JOIN Terminal t ON t.TerminalId = g.TerminalId
157JOIN Airport ap ON ap.AirportId = t.AirportId
158JOIN Departures d ON d.GateId = g.GateId
159JOIN Flights f ON f.FlightId = d.FlightId
160JOIN Airline al ON al.AirlineId = f.AirlineId
161JOIN Airport ap_dest ON ap_dest.AirportId = d.DestinationAirportId
162WHERE d.Status IN ('Scheduled', 'Go to gate', 'Boarding');