【发布时间】:2017-03-01 03:02:32
【问题描述】:
Select count(*) cnt
from fin_sap_prd_tbls.cdhdr cdhdr
Join fin_sap_prd_tbls.cdpos cdpos on (cdhdr.changenr = cdpos.changenr)
Join fin_sap_prd_tbls.ekko ekko on (ekko.lifnr = cdpos.objectid)
Join fin_sap_prd_tbls.ekpo ekpo on (ekpo.ebeln = ekko.ebeln)
where cdhdr.objectclas = 'KRED'
and cdhdr.objectid = 'vendornumber'
and cdpos.fname = 'ZTERM'
and ekpo.elikz != 'X';
Select count(*) cnt
from fin_sap_prd_tbls.cdhdr xcdhdr
Join fin_sap_prd_tbls.cdpos xcdpos on (xcdhdr.changenr = xcdpos.changenr)
/* Join fin_sap_prd_tbls.ekko xekko on (xekko.lifnr = xcdpos.objectid)*/
/* Join fin_sap_prd_tbls.ekpo xekpo on (xekpo.ebeln = xekko.ebeln)*/
where xcdhdr.objectclas = 'KRED'
and xcdhdr.objectid = 'vendornumber'
and xcdpos.fname = 'ZTERM'
/*and xekpo.elikz != 'X';*/
Select count(*) cnt
from /*fin_sap_prd_tbls.cdhdr xcdhdr
Join*/ fin_sap_prd_tbls.cdpos xcdpos /*on (xcdhdr.changenr = xcdpos.changenr)*/
Join fin_sap_prd_tbls.ekko xekko on (xekko.lifnr = xcdpos.objectid)
/* Join fin_sap_prd_tbls.ekpo xekpo on (xekpo.ebeln = xekko.ebeln)*/
where xcdhdr.objectclas = 'KRED'
and xcdhdr.objectid = 'vendornumber'
and xcdpos.fname = 'ZTERM'
/*and xekpo.elikz != 'X';*/
我使用的数据库是 Hive,运行此代码时出现以下错误。当我单独运行所有连接时,一切正常并返回数据。
作为一个附带问题,我还希望“hdr”表可以有多个结果,我希望它能够产生最新的变化。我已经尝试过 Max() 但它也出错了。
失败:SemanticException [错误 10004]:第 1:10155 行无效的表别名或列引用“cdpos”
【问题讨论】:
-
为什么你需要所有表名的别名都与你的别名匹配。
-
因为我不想每次都写出整个位置。对于“fin_sap_prd_tbls”,我有多种选择。我必须对其进行限定。
-
确切的代码,我复制并粘贴了。我所做的唯一更改是我删除了真正的供应商编号并将其替换为“供应商编号”
-
@bkirby - 你使用的是哪个版本的 hive?
-
2.3.4.7 是我昨天被告知的。