У меня есть вложенный оператор SQL. Во внутренней инструкции SQL я переименовываю столбец следующим образом: b."MANDT" b_MANDT
. Во внешнем заявлении я попробую нечто подобное: a."b_MANDT" a_b_MANDT
.Неверная колонка после переименования
Но я получаю сообщение об ошибке, что это недопустимое имя столбца, почему?
SAP DBTech JDBC: [260]: invalid column name: A.b_MANDT: line 1 col 43 (at pos 42)
Оригинал SQL заявление:
SELECT a."MANDT", a."VBELN", a."POSNR", a."b_MANDT" a_b_MANDT, a."b_VBELN" a_b_VBELN, a."VPOSN" a_VPOSN, b."MANDT" b_MANDT, b."VBELN" b_VBELN, b."VPOSN"
FROM (
SELECT a."MANDT", a."VBELN", a."POSNR", b."MANDT" b_MANDT, b."VBELN" b_VBELN, b."VPOSN"
FROM "SAP_ECC".VBAP a
LEFT JOIN "SAP_ECC".VEDA b ON a.MANDT = b.MANDT AND a.VBELN = b.VBELN AND a.POSNR = b.VPOSN
) a
LEFT JOIN "SAP_ECC".VEDA b ON a.MANDT = b.MANDT AND a.VBELN = b.VBELN AND a.VPOSN = b.VPOSN
Было бы здорово, если вы воспроизведете свою ошибку на гораздо более простой структуре и запросе, которые более читабельны, чем ваш текущий запрос. Я имею в виду, когда сообщение об ошибке указывает на ошибку, которая находится в столбце 2635 !!, то это немного. – sstan
@sstan, спасибо за отзыв, я удалил ненужные столбцы :) – ScientiaEtVeritas
Мне должно быть что-то не хватает, почему вы выбираете LEFT JOIN, по существу, тот же самый LEFT JOIN на внутренней части select statemtent вместо того, чтобы просто писать запрос, но, возможно, это является частью упрощения. И просто и предложение не используют повторные псевдонимы таблиц в том же запросе. – Matt