配置单元查询:阶段中的列引用acct\u nbr不明确

pgvzfuti  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(435)

我得到了“模棱两可的列引用”
查询:

SELECT stage.acct_nbr 
FROM   (SELECT * 
        FROM   mem stage 
               JOIN (SELECT acct_nbr, 
                            corp_ent_cd, 
                            sub_seq_nbr, 
                            mem_nbr, 
                            Max(cdc_src_last_updt_ts) AS cdc_src_last_updt_ts 
                     FROM   mem 
                     WHERE  file_nm = 'DLTV.FULL.MES3191.D180423' 
                     GROUP  BY acct_nbr, 
                               corp_ent_cd, 
                               sub_seq_nbr, 
                               mem_nbr) c 
                 ON c.corp_ent_cd = stage.corp_ent_cd 
                    AND c.acct_nbr = stage.acct_nbr 
                    AND c.sub_seq_nbr = stage.sub_seq_nbr 
                    AND c.mem_nbr = stage.mem_nbr 
                    AND stage.cdc_src_last_updt_ts = c.cdc_src_last_updt_ts 
        WHERE  stage.file_nm = 'DLTV.FULL.MES3191.D180423') stage;

错误消息:
错误:编译语句时出错:失败:semanticexception[error 10007]:阶段中的列引用acct\u nbr不明确(state=42000,code=10007)
但是,如果我选择*而不是选择stage.acct\u nbr,它将无错误地执行。
有人能解决我的问题吗?

oknwwptz

oknwwptz1#

问题出现了 SELECT * .
子查询处有两列 c.acct_nbr , stage.acct_nbr ,太外了 SELECT 不能 stage.acct_nbr 区分你想要哪个柱状图。
所以你可以选择 c.acct_nbr 或者 stage.acct_nbr 在你的 select 子查询
你可以试试这个。

SELECT stage.acct_nbr 
FROM   (SELECT c.acct_nbr 
        FROM   mem stage 
               JOIN (SELECT acct_nbr, 
                            corp_ent_cd, 
                            sub_seq_nbr, 
                            mem_nbr, 
                            Max(cdc_src_last_updt_ts) AS cdc_src_last_updt_ts 
                     FROM   mem 
                     WHERE  file_nm = 'DLTV.FULL.MES3191.D180423' 
                     GROUP  BY acct_nbr, 
                               corp_ent_cd, 
                               sub_seq_nbr, 
                               mem_nbr) c 
                 ON c.corp_ent_cd = stage.corp_ent_cd 
                    AND c.acct_nbr = stage.acct_nbr 
                    AND c.sub_seq_nbr = stage.sub_seq_nbr 
                    AND c.mem_nbr = stage.mem_nbr 
                    AND stage.cdc_src_last_updt_ts = c.cdc_src_last_updt_ts 
        WHERE  stage.file_nm = 'DLTV.FULL.MES3191.D180423') stage;

相关问题