2014-12-10 2 views
0

Я не могу понять проблему синтаксиса со следующим кодом. Когда я запускаю его, я получаю ошибкуOracle sql - ORA-00907 и мой неправильный синтаксис

ORA-00907: missing right parenthesis

Может ли кто-нибудь указать на мой недостаток, пожалуйста?

CREATE OR REPLACE VIEW LATESTAPPLICATIONS AS 
SELECT * 
FROM application_history 
WHERE entry_time IN 
    (SELECT entry_time 
    FROM application_history 
    GROUP BY application_number;) 
ORDER BY entry_number;​ 

Вот определение таблицы для application_history. Я в идеале хочу только просмотреть номера приложений с последними отметками времени.

CREATE TABLE "APPLICATION_HISTORY" 
    ( "ENTRY_NUMBER" NUMBER(28,0), 
"APPLICATION_NUMBER" NUMBER(16,0) CONSTRAINT "APP_NUM_NN" NOT NULL ENABLE, 
"ACTIVE" CHAR(1) DEFAULT 0 CONSTRAINT "ACTIVE_NN" NOT NULL ENABLE, 
"STATUS" VARCHAR2(40) DEFAULT 'APPLICATION ENTERED' CONSTRAINT "STATUS_NN" NOT NULL ENABLE, 
"DATE_APPROVED" DATE, 
"DATE_APPLIED" DATE DEFAULT SYSDATE CONSTRAINT "DATE_APPLIED_NN" NOT NULL ENABLE, 
"ENTRY_TIME" TIMESTAMP (6) DEFAULT SYSDATE, 
CONSTRAINT "ENTRY_NUM_PK" PRIMARY KEY ("ENTRY_NUMBER") 
USING INDEX ENABLE 
) 
+1

У вас есть ';' в середине вашего запроса. Должен быть закрыт как typo ... –

ответ

2

У вас есть двоеточие в последней, но 1 линии. GROUP BY application_number;) Удалите его, и все будет хорошо.

Полу-двоеточие выступает в качестве терминатора запросов в Oracle, поскольку вы разместили его до того, как) Oracle не смог его найти.

+0

, когда я удаляю точку с запятой, я получаю ошибку: ORA-00933: SQL-команда не была правильно закончена – IamPancakeMan

+0

@IamPancakeMan у вас все еще стоит проблема? В конце вам понадобится 1 точка с запятой – dubes