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

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

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

  1. SELECT stage.acct_nbr
  2. FROM (SELECT *
  3. FROM mem stage
  4. JOIN (SELECT acct_nbr,
  5. corp_ent_cd,
  6. sub_seq_nbr,
  7. mem_nbr,
  8. Max(cdc_src_last_updt_ts) AS cdc_src_last_updt_ts
  9. FROM mem
  10. WHERE file_nm = 'DLTV.FULL.MES3191.D180423'
  11. GROUP BY acct_nbr,
  12. corp_ent_cd,
  13. sub_seq_nbr,
  14. mem_nbr) c
  15. ON c.corp_ent_cd = stage.corp_ent_cd
  16. AND c.acct_nbr = stage.acct_nbr
  17. AND c.sub_seq_nbr = stage.sub_seq_nbr
  18. AND c.mem_nbr = stage.mem_nbr
  19. AND stage.cdc_src_last_updt_ts = c.cdc_src_last_updt_ts
  20. 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 子查询
你可以试试这个。

  1. SELECT stage.acct_nbr
  2. FROM (SELECT c.acct_nbr
  3. FROM mem stage
  4. JOIN (SELECT acct_nbr,
  5. corp_ent_cd,
  6. sub_seq_nbr,
  7. mem_nbr,
  8. Max(cdc_src_last_updt_ts) AS cdc_src_last_updt_ts
  9. FROM mem
  10. WHERE file_nm = 'DLTV.FULL.MES3191.D180423'
  11. GROUP BY acct_nbr,
  12. corp_ent_cd,
  13. sub_seq_nbr,
  14. mem_nbr) c
  15. ON c.corp_ent_cd = stage.corp_ent_cd
  16. AND c.acct_nbr = stage.acct_nbr
  17. AND c.sub_seq_nbr = stage.sub_seq_nbr
  18. AND c.mem_nbr = stage.mem_nbr
  19. AND stage.cdc_src_last_updt_ts = c.cdc_src_last_updt_ts
  20. WHERE stage.file_nm = 'DLTV.FULL.MES3191.D180423') stage;
展开查看全部

相关问题