У меня есть вид -
Я не мог понять, как добавить эти два
SELECT * FROM C_OWNR.RETIRED;
Таблица вывода
ID_NO **SHIP_NUM** EXPIRY_DT CREATED_BY CREATED_DT
0903 1134 12-JAN-84 gino 07-JAN-20
6779 1134 18-SEP-79 gino 07-JAN-20
7784 0940 14-JAN-97 gino 07-JAN-20
7655 0940 12-MAR-87 gino 07-JAN-20
9787 0935 22-NOV-99 gino 07-JAN-20
7899 0935 13-FEB-96 gino 07-JAN-20
CREATE OR REPLACE FORCE VIEW C_OWNR.V_C_FORM
(
CRUISE_ID,
SHIPNO,
ABSTRACTNO,
SEA,
DEPTH,
WATER
)
BEQUEATH DEFINER
AS
SELECT y.cruise_id
AS cruise_id,
y.ship_no
AS shipNo,
x.abstract_no
AS AbstractNo,
x.sea
AS Sea,
y.depth
AS Depth,
z.qualitywater
AS water
FROM production_owner.ocean_current@rame.world y
LEFT OUTER JOIN production_owner.ocean_current_extract x ON y.ship_no = x.ship_no
LEFT OUTER JOIN (SELECT g.*
FROM growth_ownr.trend_application g
JOIN
( SELECT MAX (go.trend_application_id)
application_id,
go.ship_num,
go.letter_issued_date
FROM growth_ownr.trend_application go
JOIN
( SELECT gi.ship_num,
MAX (
gi.letter_issued_date) latest_issued_date
FROM growth_ownr.trend_application
gi
WHERE gi.application_status =
'Issued'
AND TRUNC (
gi.letter_issued_date) >=
SYSDATE
- INTERVAL '5' YEAR
GROUP BY gi.ship_num) i
ON i.ship_num = go.ship_num
AND i.latest_issued_date =
go.letter_issued_date
GROUP BY go.ship_num,
go.letter_issued_date) t
ON t.ship_num = g.ship_num
AND t.application_id =
g.trend_application_id) z
ON z.ship_num = y.ship_no;
Просмотр вывода
CRUISE_ID **SHIPNO** ABSTRACTNO SEA DEPTH WATER
7604 1134 null 1 2501 1000
7079 1134 null 2 4856 3000
7766 0940 null 3 4322 5000
7047 0940 34 1 2344 0750
7046 0935 null 5 2343 0250
7045 0935 null 7 0010 4000
В этом представлении мы добавляем поле EXPIRY
CREATE OR REPLACE FORCE VIEW C_OWNR.V_C_FORM
(
CRUISE_ID,
SHIPNO,
ABSTRACTNO,
SEA,
DEPTH,
WATER
EXPIRY ---------------
)
BEQUEATH DEFINER
AS
SELECT
y.cruise_id
AS cruise_id,
y.ship_no
AS shipNo,
x.abstract_no
AS AbstractNo,
x.sea
AS Sea,
y.depth
AS Depth,
z.qualitywater
AS water,
e.expiry_dt ---------------
AS expiry ---------------
FROM production_owner.ocean_current@rame.world y
LEFT OUTER JOIN production_owner.ocean_current_extract x ON y.ship_no = x.ship_no
LEFT OUTER JOIN SELECT EXPIRY_DT FROM C_OWNR.RETIRED e NO e.SHIP_NUM = y.shipNo
-----? IS THIS A CORRECT WAY TO GET THE EXPECTED OUT PUT ???????
LEFT OUTER JOIN (SELECT g.*
FROM growth_ownr.trend_application g
JOIN
( SELECT MAX (go.trend_application_id)
application_id,
go.ship_num,
go.letter_issued_date
FROM growth_ownr.trend_application go
JOIN
( SELECT gi.ship_num,
MAX (
gi.letter_issued_date) latest_issued_date
FROM growth_ownr.trend_application
gi
WHERE gi.application_status =
'Issued'
AND TRUNC (
gi.letter_issued_date) >=
SYSDATE
- INTERVAL '5' YEAR
GROUP BY gi.ship_num) i
ON i.ship_num = go.ship_num
AND i.latest_issued_date =
go.letter_issued_date
GROUP BY go.ship_num,
go.letter_issued_date) t
ON t.ship_num = g.ship_num
AND t.application_id =
g.trend_application_id) z
ON z.ship_num = y.ship_no;
для этого поля EXPIRY нам нужно получить данные от - EXPIRY_DT
SELECT EXPIRY_DT FROM C_OWNR.RETIRED;
Это мой Ожидаемый вывод VIEW
CRUISE_ID SHIPNO ABSTRACTNO SEA DEPTH WATER EXPIRY_DT
7604 1134 null 1 2501 1000 12-JAN-84
7079 1134 null 2 4856 3000 18-SEP-79
7766 0940 null 3 4322 5000 14-JAN-97
7047 0940 34 1 2344 0750 12-MAR-87
7046 0935 null 5 2343 0250 22-NOV-99
7045 0935 null 7 0010 4000 13-FEB-96
Я не мог понять, как добавить эти два. Как получить ожидаемый вывод VIEW из таблицы и представления? Спасибо