代码之家  ›  专栏  ›  技术社区  ›  John Wick

列定义模糊-没有行号/列号

  •  0
  • John Wick  · 技术社区  · 7 年前

    我一直在尝试创建一个查询,该查询使用多个列将两组表连接在一起。我试过为每一列指定别名,但仍收到 (ORA-00918:列定义模糊) 没有行号/方向的错误,oracle对该列有问题。有人能帮我吗?在这个问题上被困了几个小时了。我的代码如下,提前谢谢!

     SELECT *
     FROM
     (select v.value_id as i_value_id
     , v.value_nb as i_value_nb
     , v.utc_offset as i_utc_offset
     , v.data_Date as i_data_date
     , v.hr_utc as i_hr_utc
     , v.utc_offset as i_utc_offset
     , v.hr as i_hr
     , v.hr_num as i_hr_num
     , v.data_Code as i_data_code
     , v.Code as i_code
     , ff.form_Field_tx as i_form_field_tx
     , sv.submission_value_id as i_submission_value_id
     , s.submission_name_tx as i_submission_name_tx
     , s.submission_id as i_submission_id
     , fl.form_line_tx as i_form_line_tx
     , fs.form_section_tx as i_form_section_tx
     , sf.form_name_tx as i_form_name_tx
     , sf.form_label_tx as i_form_label_tx
     , sf.form_number_tx as i_form_number_tx
     , sf.survey_id as i_survey_id
       from value v
       join sub_value sv on v.value_id = sv.value_id
       join form_Field ff on sv.form_Field_id = ff.form_Field_id
       join sub s on sv.submission_id = s.submission_id
       LEFT OUTER JOIN form_line fl ON ff.form_line_id = fl.form_line_id
       LEFT OUTER JOIN form_section fs ON fl.form_section_id = fs.form_section_id
       LEFT OUTER JOIN survey_form sf ON fs.survey_form_id = sf.survey_form_id) subq1
       JOIN
       (select va.value_id as o_value_Id
       , va.value_nb as o_value_nb
       , va.utc_offset as o_utc_offset
       , va.data_Date as o_data_date
       , va.hr_utc as o_hr_utc
       , va.hr as o_hr
       , va.hr_num as o_hr_num
       , va.data_Code as o_data_Code
       , va.balancing_Authority_Code as o_balancing_authority_code
       , ff2.form_Field_tx as o_form_field_tx
       , sva.submission_value_id as o_submission_value_id
       , s.submission_id as o_submission_id
       , fl.form_line_tx as o_form_line_tx
       , fs.form_section_tx as o_form_section_tx
       , sf.form_name_tx as o_form_name_tx
       , sf.form_label_tx as o_form_label_tx
       , sf.form_number_tx as o_form_number_tx
       , sf.survey_id as o_survey_id
       from submission s
       join submission_value_audit sva on s.submission_id = sva.submission_id
       join value_audit va on sva.value_id = va.value_id
       join form_Field ff2 on sva.form_Field_id = ff2.form_Field_id
       LEFT OUTER JOIN form_line fl ON ff2.form_line_id = fl.form_line_id
       LEFT OUTER JOIN form_section fs ON fl.form_section_id = fs.form_section_id
       LEFT OUTER JOIN survey_form sf ON fs.survey_form_id = sf.survey_form_id) subq2
         on subq1.sub_id = subq2.sub_id
         on subq1.code = subq2.code;
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Shaun Peterson    7 年前

    似乎有一个重复的i_utc_offset定义(请参阅下面的代码片段)

    (select v.value_id as i_value_id
     , v.value_nb as i_value_nb
     , v.utc_offset as i_utc_offset
     , v.data_Date as i_data_date
     , v.hr_utc as i_hr_utc
     , v.utc_offset as i_utc_offset
    
        2
  •  1
  •   Niharika Bitra    7 年前

    您尝试执行一个SQL语句,该语句加入两个或多个表,其中两个表中存在同名的列。

    参考: https://www.techonthenet.com/oracle/errors/ora00918.php

    下面是重复的列名。

    SELECT *
    FROM
    (
      select ...
         , v.utc_offset as i_utc_offset
         ...
         , v.utc_offset as i_utc_offset