2016-11-18 46 views
0

我陷入了甲骨文的一個編程問題,我試圖解決這個問題。我想創建一個視圖,這將使我對FBN001毫無保留的/可提供座位數27日數2016在Oracle的VIEW中對COUNT編碼

十月這是飛行表:

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

這是飛機表:

CREATE TABLE Airplane(
    Airplane_ID VARCHAR(10), 
    Capacity NUMBER(5) NOT NULL, 
    Model VARCHAR(15) NOT NULL, 
    CONSTRAINT AirplaneIDPK PRIMARY KEY(Airplane_ID)); 

這是訂房表:

CREATE TABLE Booking(
    Booking_ID NUMBER(10), 
    Flight_ID VARCHAR(25), 
    Customer_ID NUMBER(10), 
    Payment_Method VARCHAR(10) NOT NULL, 
    CreditCard_Details NUMBER(18), 
    CONSTRAINT BookingIDPK PRIMARY KEY(Booking_ID), 
    CONSTRAINT FlightIDFK FOREIGN KEY(Flight_ID) REFERENCES Flight(Flight_ID), 
    CONSTRAINT CustomerIDFK FOREIGN KEY(Customer_ID) REFERENCES Customer(Customer_ID)); 

我想我會使用COUNT˚F油膏來算預訂

CREATE VIEW ViewB AS(
SELECT Flight.Route_ID, Flight.Departure_Time, Airplane.Capacity, COUNT(Flight_ID) AS NumberOfBooking 
FROM Flight, Airplane, Booking 
WHERE Flight.Airplane_ID = Airplane.Airplane_ID 
AND Flight.Route_ID = 'FBN001' 
GROUP BY Flight.Route_ID, Airplane.Capacity); 

但沒有工作,

這是給我的錯誤

錯誤報告 -

SQL錯誤:ORA-00918:列定義的含糊

  1. 00000 - 「列明確定義」

*原因:

*操作:

可能是什麼解決辦法嗎? 謝謝

+0

你的意思不工作?告訴我們錯誤或錯誤的結果。請閱讀[** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t這裏是[** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/),瞭解如何提高您的問題質量並獲得更好的答案。 –

回答

0

您還沒有添加一份聲明中適當加入預訂表:

CREATE VIEW ViewB AS(
SELECT Flight.Route_ID, Flight.Departure_Time, Airplane.Capacity,  COUNT(Flight_ID) AS NumberOfBooking 
FROM Flight, Airplane, Booking 
WHERE Flight.Airplane_ID = Airplane.Airplane_ID 
AND Flight.Flight_ID=Booking.Flight_ID 
AND Flight.Route_ID = 'FBN001' 
GROUP BY Flight.Route_ID, Airplane.Capacity); 
+0

你是什麼意思? – PikaJovi

+0

有沒有加入預訂表的聲明。你有這個: –

+0

對不起,我不小心提交了。無論如何,你有Flight.Airplane_ID = Airplane.Airplane_ID加入飛行表和飛機表,但沒有任何參加預訂表的任何一個表。因此我添加了Flight.Flight_ID = Booking.Flight_ID –