Sql 配置单元查询:阶段中的列引用帐户不明确
我得到了“不明确的列引用” 查询:Sql 配置单元查询:阶段中的列引用帐户不明确,sql,hadoop,hive,hiveql,Sql,Hadoop,Hive,Hiveql,我得到了“不明确的列引用” 查询: SELECT stage.acct_nbr FROM (SELECT * FROM mem stage JOIN (SELECT acct_nbr, corp_ent_cd, sub_seq_nbr, mem_nbr,
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[错误10007]:阶段中不明确的列引用帐户(状态=42000,代码=10007)
然而,如果我选择*而不是选择stage.acct_nbr,它将无错误地执行
有人能解决我的问题吗?问题在
SELECT*
上
子查询c.acct\u nbr
,stage.acct\u nbr
中有两列,因此外部选择无法stage.acct\u nbr
区分要获取的列
因此,您可以在选择子查询中选择c.acct\u nbr
或stage.acct\u nbr
你可以试试这个
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;