Почему в этом коде отсутствует ошибка в скобках - PullRequest
0 голосов
/ 25 сентября 2018

Я выполняю этот запрос и получаю сообщение об ошибке, которое отсутствует в правой скобке.Запрос является частью большего запроса.Более крупный запрос выполняется нормально, и я получаю пропущенную ошибку в скобках после добавления приведенного ниже кода.

 (( SELECT (CASE WHEN NAME = 'ELP' THEN 
                 'ELP'
                 WHEN NAME  = 'MDP' THEN 'MDP'
                 ELSE 'Other'
                 END ) AS P_TYPE
                 FROM JOB_INFORMATION_D 
                 INNER JOIN EVENT_F 
                      ON EVENT_F.JOB_INFO_ROW_ =JOB_INFORMATION_D.ROW_WID
                      INNER CANDIDATE_D ON CANDIDATE_D.ROW_WID =     EVENT_F.CANDIDATE_ROW_WID
                     WHERE STS_NAME = 'Extended'
                     AND STEP_NAME = 'Offer'
              AND inner.PZNUM = OUTERAPP.PI_CANDIDATE_NUM

              ORDER BY DT ASC) T1 WHERE ROWNUM=1),

1 Ответ

0 голосов
/ 25 сентября 2018

У вас есть два предложения WHERE, но только один оператор SELECT.Второе предложение WHERE находится вне скобок SELECT в скобках и поэтому не принадлежит ни к какому SELECT.

Также, как говорит @mathguy, отсутствует ключевое слово JOIN.

Перепишите операторas

SELECT *
FROM
  ( SELECT
        CASE WHEN NAME = 'ELP' THEN 'ELP'
             WHEN NAME  = 'MDP' THEN 'MDP'
             ELSE 'Other'
        END AS P_TYPE
    FROM
        JOB_INFORMATION_D
        INNER JOIN EVENT_F
            ON EVENT_F.JOB_INFO_ROW_ = JOB_INFORMATION_D.ROW_WID
        INNER JOIN CANDIDATE_D
            ON CANDIDATE_D.ROW_WID = EVENT_F.CANDIDATE_ROW_WID
    WHERE
        STS_NAME = 'Extended' AND
        STEP_NAME = 'Offer' AND
        inner.PZNUM = OUTERAPP.PI_CANDIDATE_NUM
    ORDER BY DT ASC
  )
WHERE
    ROWNUM = 1

Также есть эти inner.PZNUM и OUTERAPP.PI_CANDIDATE_NUM, но нет таблиц с именами inner и OUTERAPP.Либо этот SQL-код полностью неверен, либо вы не показали нам всю команду.

Следовательно, вы должны использовать псевдонимы таблиц, а затем добавлять к этим псевдонимам все используемые столбцы.Как и сейчас, никто не видит, к какой таблице принадлежат столбцы.

...
FROM
    JOB_INFORMATION_D J
    INNER JOIN EVENT_F E
        ON E.JOB_INFO_ROW_ = J.ROW_WID
    INNER JOIN CANDIDATE_D C
        ON C.ROW_WID = E.CANDIDATE_ROW_WID
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...