2017-02-28 59 views
1
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,并且在运行此代码时出现以下错误。当我单独运行所有连接时,一切正常,返回数据。表格没有正确连接[错误10004]

作为一个侧面问题,我也希望'hdr'表可以有多个结果,我希望它能产生最新的变化。我已经尝试过Max(),但它也出错了。

FAILED:SemanticException [错误10004]:第1行:10155无效表别名或列引用“cdpos”

+0

为什么你需要在所有的表名的别名匹配您的别名。 – xQbert

+0

因为我不想每次写出整个位置。我对'fin_sap_prd_tbls'有多种选择。我必须去认证它。 – bkirby

+0

确切的代码,我复制并粘贴它。只改变我做的是我删除了真实的供应商编号并用“供应商编号”代替它 – bkirby

回答

0

我删除别名作为表名称已匹配的别名。引擎可能会被名称相同的对象混淆。

SELECT count(*) cnt 
FROM fin_vsap_prd_tbls.cdhdr 
    JOIN fin_sap_prd_tbls.cdpos on (cdhdr.changenr = cdpos.changenr) 
    JOIN fin_sap_prd_tbls.ekko on (ekko.lifnr = cdpos.objectid) 
    JOIN fin_sap_prd_tbls.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_vsap_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'; 
+0

编译语句时出错:FAILED:ParseException行1:0无法识别'and''cdhdr''附近的输入':28:27, 表格不合格。 – bkirby

+0

尝试别名与不使用的名称(我只是用x前缀)。如果我们仍然有问题,那么我想确认'objectclas'和'objectid'是'fin_vsap_prd_tbls.cdhdr'中的有效字段。 – xQbert

+0

编译语句时出错:FAILED:SemanticException [错误10004]:第1行:10590无效的表别名或列参考'xcdpos': 与以前一样的错误。 – bkirby

相关问题