2013-04-24 7 views
0

Мне нужно создать представление, где я в основном должен объединить три таблицы, чтобы увидеть, когда контакт был последним подтвержден. Это код, который у меня до сих пор:Oracle SQL Create View недействительный идентификатор

Я продолжаю получать эту ошибку и не могу понять, почему.

Error at Command Line:10 Column:7 
Error report: 
SQL Error: ORA-00904: "VERIFIED_ON": invalid identifier 
00904. 00000 - "%s: invalid identifier" 
*Cause:  
*Action: 

Если бы кто-нибудь мог помочь, я был бы очень признателен.

+0

Я пытаюсь переименовать OC.LAST_DATE_VERIFIED в VERIFIED_ON для представления. Правильно ли я это делаю? –

+0

См. Http://stackoverflow.com/questions/3852831/how-to-use-alias-in-where-clause. В принципе вы не можете использовать столбец 'alias' в' WHERE'. –

ответ

1

Вы используете verified_on в предложении where. Я думаю, что вам нужно last_date_verified вместо:

CREATE VIEW P_PHONECONTACT_VERIFICATION_V AS 
SELECT 
OW.LASTNAME, OW.FIRSTNAME, OW.EMAIL, 
OP.PHONE_CONTACTID, OP.PHONENUM, OP.PHONETYPE, 
OC.LAST_DATE_VERIFIED AS VERIFIED_ON 
FROM P_OWNER OW LEFT JOIN P_OWNERCONTACT OC 
ON OW.OWNERID = OC.OWNERID 
LEFT JOIN P_OWNERPHONE OP 
    ON OC.CONTACTID = OP.PHONE_CONTACTID 
WHERE OC.LAST_DATE_VERIFIED IS NULL OR 
OC.LAST_DATE_VERIFIED > SYSDATE-365 
ORDER BY LASTNAME; 

Вы не можете использовать псевдоним столбца, определенного в пункте select в пункте where.

+0

Большое спасибо. Это сработало отлично. –

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