2012-06-25 5 views
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 линия.

Как я могу исправить эту ошибку и создать вид сверху?

ответ

1

Я нашел ошибку с моим запросом. запрос должен исправить, как показано ниже.

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) aa ON the_day = aa.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) bb ON the_day = bb.tea_prodcution_date 
ORDER BY the_day 
+0

Вы можете пойти, пока кто-то не добавит столбец с именем t1 в вид year_days, и это же исключение будет снова поднято. Это ДЕЙСТВИТЕЛЬНО, ДЕЙСТВИТЕЛЬНО хорошая идея, чтобы квалифицировать ВСЕ столбцы в вашем запросе, чтобы защитить его от взлома, когда кто-то добавляет столбец. – spencer7593