0
Я пытаюсь создать представление с нижеследующим запросом.Столбец неоднозначно определен Ошибка при создании представления
SELECT the_day, t1, t2
FROM year_days
LEFT JOIN (SELECT tea_prodcution_date, SUM(quantity) t1
FROM TEA_PRODUCTION
WHERE field_name like 'T1'
GROUP BY tea_prodcution_date) ON the_day = tea_prodcution_date
LEFT JOIN (SELECT tea_prodcution_date, SUM(quantity) t2
FROM TEA_PRODUCTION
WHERE field_name like 'T2'
GROUP BY tea_prodcution_date) ON the_day = tea_prodcution_date
ORDER BY the_day
year_days вид создается ниже запроса.
SELECT add_months(TRUNC(sysdate - (365), 'YYYY'),to_number(to_char(sysdate,'mm'))) + (level - 1) AS the_day
FROM dual
CONNECT BY level <=
to_number(TO_CHAR(last_day(add_months(TRUNC(sysdate, 'YYYY'), 11)),
'DDD'))
Когда я пытаюсь выполнить свой первый запрос для создания представления, я получил ошибку ниже.
ORA-00918: column ambiguously defined
00918. 00000 - "column ambiguously defined"
*Cause:
*Action:
Error at Line: 10 Column: 58
Ошибка возникает с ON the_day = tea_prodcution_date
линия.
Как я могу исправить эту ошибку и создать вид сверху?
Вы можете пойти, пока кто-то не добавит столбец с именем t1 в вид year_days, и это же исключение будет снова поднято. Это ДЕЙСТВИТЕЛЬНО, ДЕЙСТВИТЕЛЬНО хорошая идея, чтобы квалифицировать ВСЕ столбцы в вашем запросе, чтобы защитить его от взлома, когда кто-то добавляет столбец. – spencer7593