SQL Assignment
SQL Assignment
CarrierId INTEGER PRIMARY KEY AUTOINCREMENT, -- Auto-generated unique identifier for each carrier
CarrierName VARCHAR(255) NOT NULL, -- Carrier name (e.g., Indigo, Jet Airways)
);
CarrierName,
DiscountPercentageThirtyDaysAdvanceBooking,
DiscountPercentageSixtyDaysAdvanceBooking,
DiscountPercentageNinteyDaysAdvanceBooking,
RefundPercentageForTicketCancellation2DaysBeforeTravelDate,
RefundPercentageForTicketCancellation10DaysBeforeTravelDate,
RefundPercentageForTicketCancellation20DaysBeforeTravelDate,
BulkBookingDiscount,
SilverUserDiscount,
GoldUserDiscount,
PlatinumUserDiscount
VALUES
2.
CarrierName,
DiscountPercentageThirtyDaysAdvanceBooking,
DiscountPercentageSixtyDaysAdvanceBooking,
DiscountPercentageNinteyDaysAdvanceBooking,
RefundPercentageForTicketCancellation2DaysBeforeTravelDate,
RefundPercentageForTicketCancellation10DaysBeforeTravelDate,
RefundPercentageForTicketCancellation20DaysBeforeTravelDate,
BulkBookingDiscount,
SilverUserDiscount,
GoldUserDiscount,
PlatinumUserDiscount
VALUES
('Air India', 7, 14, 21, 25, 45, 65, 7, 14, 21, 28);
3.
FlightID INTEGER PRIMARY KEY AUTOINCREMENT, -- Auto-generated unique identifier for each flight
);
Origin,
Destination,
Airfare,
SeatCapacityEconomyClass,
SeatCapacityBusinessClass,
SeatCapacityExecutiveClass
VALUES
(1, 'JFK', 'LHR', 499, 180, 30, 10), -- Assuming CarrierID 1 exists in Carrier table
(2, 'LAX', 'ORD', 299, 150, 25, 5), -- Assuming CarrierID 2 exists in Carrier table
(1, 'SFO', 'MIA', 399, 160, 20, 8); -- Assuming CarrierID 1 exists in Carrier table
4.
CarrierID,
Origin,
Destination,
Airfare,
SeatCapacityEconomyClass,
SeatCapacityBusinessClass,
SeatCapacityExecutiveClass
VALUES
(1, 'JFK', 'LHR', 499, 180, 30, 10), -- Flight 1 with CarrierID 1
(2, 'LAX', 'ORD', 299, 150, 25, 5), -- Flight 2 with CarrierID 2
(3, 'SFO', 'MIA', 399, 160, 20, 8), -- Flight 3 with CarrierID 3
(1, 'DFW', 'ATL', 350, 200, 35, 12), -- Flight 4 with CarrierID 1
(2, 'SEA', 'SFO', 220, 140, 20, 6); -- Flight 5 with CarrierID 2
5.
-- Query to get Carrier Name and total count of Flights for each Carrier
SELECT
FROM
Carrier c
LEFT JOIN
GROUP BY
ORDER BY
6.
-- Query to get FlightID, Carrier Name, Origin, Destination, and Airfare for the flight with the lowest airfare to a
given destination
SELECT
f.FlightID,
c.CarrierName,
f.Origin,
f.Destination,
f.Airfare
FROM
Flight f
JOIN
Carrier c ON f.CarrierID = c.CarrierID -- Join with Carrier table to get the carrier name
WHERE
f.Destination = 'YOUR_DESTINATION' AND -- Replace 'YOUR_DESTINATION' with the actual destination code or
name
f.Airfare = ( -- Subquery to find the lowest airfare for the given destination
SELECT MIN(Airfare)
FROM Flight
);
7.
-- Query to retrieve FlightID, Carrier Name, Origin, Destination, Airfare, and available seats for flights to LHR
SELECT
f.FlightID,
c.CarrierName,
f.Origin,
f.Destination,
f.Airfare,
FROM
Flight f
JOIN
LEFT JOIN
WHERE
f.Destination = 'LHR';
8.
9.
UPDATE FlightBooking
UPDATE FlightSchedule
SET
WHERE
AND
10
-- Delete flights that belong to a given carrier and for a specific travel destination
11.
FROM Carrier c
12.
UPDATE Flight
AND EXISTS (
SELECT 1
FROM Carrier c
AND LEAST(
c.DiscountPercentageThirtyDaysAdvanceBooking,
c.DiscountPercentageSixtyDaysAdvanceBooking,
c.DiscountPercentageNinteyDaysAdvanceBooking
)>3
);