作成したテーブルは次のとおりです。
CREATE TABLE Plane_new (Pnum char(3), Feature varchar2(20), Ptype varchar2(15),
primary key (Pnum));
CREATE TABLE Employee_new (eid char(3), ename varchar(10), salary number(7,2), mid char(3),
PRIMARY KEY (eid), FOREIGN KEY (mid) REFERENCES Employee_new);
CREATE TABLE Pilot_new (eid char(3), Licence char(9), primary key (eid),
foreign key (eid) references Employee_new on delete cascade);
CREATE TABLE FlightI_new (Fnum char(4), Fdate date, Duration number(2), Pid char(3),
Pnum char(3), primary key (Fnum), foreign key (Pid) references Pilot_new (eid),
foreign key (Pnum) references Plane_new);
そして、私が完了する必要があるクエリは次のとおりです。各フライトについて、その番号、フライトを実施したパイロットの名前、および飛行時間が平均より長かった場合は「平均より長い」という言葉、または「平均より短い」という言葉を表示します。飛行時間が平均以下だった場合。「平均より長い」または「平均より短い」という単語を含む列の場合、ヘッダーの長さを作成します。
これが私が思いついたものです-運が悪いです!
SELECT F.Fnum, E.ename,
CASE Length
WHEN F.Duration>(SELECT AVG(F.Duration) FROM FlightI_new F)
THEN "Longer than average"
WHEN F.Duration<=(SELECT AVG(F.Duration) FROM FlightI_new F)
THEN 'Shorter than average' END
FROM FlightI_new F LEFT OUTER JOIN Employee_new E ON F.Pid=E.eid
GROUP BY F.Fnum, E.ename;
どこが間違っていますか?