2016-11-18 3 views
0

Я застрял в проблеме прогамаминга в Oracle, которую я пытаюсь решить. Я предполагаю, чтобы создать вид, что даст мне общее количество часов прилетевших EVER для экипажа FBN001 на 27 октября 2016Кодирование SUM в представлении Oracle

Это рейс Таблица:

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)); 

И это Crew Таблица:

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)); 

Я думал, что я хотел бы использовать SUM Функция:

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'); 

, но это не работает? Каким может быть решение? Спасибо

ответ

1

Вам нужен 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); 
+0

Спасибо! Это сработало! – PikaJovi

Смежные вопросы