Запрос, например, так:
SELECT SUM(col1 * col3) AS total, col2
FROM table1
GROUP BY col2
работает как положено при запуске по отдельности.
Для справки:
table1.col1 -- float
table1.col2 -- varchar2
table1.col3 -- float
Когда этот запрос перемещается в подзапрос, я получаю ошибку ORA-01722 со ссылкой на позицию "col2" в предложении select. Большой запрос выглядит так:
SELECT col3, subquery1.total
FROM table3
LEFT JOIN (
SELECT SUM(table1.col1 * table1.col3) AS total, table.1col2
FROM table1
GROUP BY table1.col2
) subquery1 ON table3.col3 = subquery1.col2
Для справки:
table3.col3 -- varchar2
Также стоит отметить, что у меня есть другой запрос, из table2 , который имеет ту же структуру, что и table1 . Если я использую подзапрос из таблицы 2, он работает. Это никогда не работает при использовании table1.
Конкатенация отсутствует, типы данных совпадают, запрос работает сам по себе ... Я в недоумении. Что еще я должен искать? Какая болезненно очевидная проблема - смотреть мне в лицо?
(Я не выбирал и не создавал структуры таблиц и не могу их изменить, поэтому ответы на этот вопрос, к сожалению, не помогут.)