私は4つのテーブルを持っています
EMPLOYEE
(E#, NAME
)、主キーはE#
DRIVER
(E#, L#
)、主キーはE#
参照ですEMPLOYEE
TRIP
(T#, L#
)、主キーはT#
、外部キーL#
参照DRIVER
TRIPPT
(T#, PT#
) 主キーはT#
参照ですTRIP
ドライバーが実行する最長ポイントの長さ (pt# の総数) を見つける関数を作成しました。
これまでの私のクエリ:
create or replace function LONGPT (DL# in TRIP.L#%type)
return TRIPPT.PT#%type
IS
TRIPPT# TRIPPT.PT#%type;
begin
select max (PT#)
into TRIPPT#
from TRIPPT
where T# in (select T#
from TRIP
where L# = DL#);
return nvl (TRIPPT#, 0);
end LONGPT;
NAME
選択クエリを実行して、従業員の LONGPTを表示するにはどうすればよいですか。トリップポイントを実行しないドライバー名もクエリに含める必要があります。
私が試してみました:
SELECT DRIVER.L# AS License_No, LONGTPT(TRIP.L#) AS "LONGEST POINT"
FROM DRIVER
LEFT OUTER JOIN TRIP on DRIVER.L# = TRIP.L#;
これは、L# と LONGEST ポイントのみを照会します。
従業員の名前を表示し、私の関数 LONGPT を使用して select ステートメントを実行する方法を教えてください。