Reputation: 13
I am stuck in a progaramming problem in Oracle, that I am trying to solve. I am suppose to create a View that will give me the total hours flown EVER, for crew of the FBN001 on the 27th october 2016
This is the Flight Table:
CREATE TABLE Flight(
Flight_ID VARCHAR(25),
Route_ID VARCHAR(25),
Airplane_ID VARCHAR(10),
Departure_Time DATE,
Arrival_Time DATE,
CONSTRAINT FlightIDPK PRIMARY KEY(Flight_ID),
CONSTRAINT RouteIDFK FOREIGN KEY(Route_ID) REFERENCES Route(Route_ID),
CONSTRAINT AirplaneIDFK FOREIGN KEY(Airplane_ID) REFERENCES Airplane(Airplane_ID));
And this is the Crew Table:
CREATE TABLE Crew(
Crew_ID NUMBER(10),
Flight_ID VARCHAR(25),
Role VARCHAR(25) NOT NULL,
Employee_ID NUMBER(10),
Hours NUMBER(10),
CONSTRAINT CrewIDPK PRIMARY KEY(Crew_ID),
CONSTRAINT EmployeeIDFK FOREIGN KEY(Employee_ID) REFERENCES Employee(Employee_ID));
I thought i would use the SUM Function:
CREATE VIEW ViewC AS(
SELECT Flight.Route_ID, Crew.Employee_ID, SUM(Hours)AS TotalHoursFlew
FROM Crew, Flight
WHERE Crew.Flight_ID = Flight.Flight_ID
AND Route_ID = 'FBN001');
but that isnt working? what could be the solution? Thank you
Upvotes: 0
Views: 83
Reputation: 43523
You need a GROUP BY:
CREATE VIEW ViewC AS(
SELECT Flight.Route_ID, Crew.Employee_ID, SUM(Hours)AS TotalHoursFlew
FROM Crew, Flight
WHERE Crew.Flight_ID = Flight.Flight_ID
AND Route_ID = 'FBN001'
GROUP BY Flight.Route_ID, Crew.Employee_ID);
Upvotes: 1