2017-09-25 116 views
-1
select upp.item_total, 
    (select sum(iva.total_item_value_afs) 
    from (select sum(item_value_afs) total_item_value_afs 
      from (select distinct inn.reg_no,inn.tpt_cuo_nam, inn.item_total, inn.item_value_afs 
       from sigtasad.customs_import_data inn 
       where inn.reg_no = upp.reg_no and inn.tpt_cuo_nam = upp.tpt_cuo_nam 
       ) 
     ) iva 
    ) total_item_value, 
    sum(upp.code_tax_amount), 
    upp.cmp_nam from SIGTASAD.CUSTOMS_IMPORT_DATA upp where upp.reg_no = '38699' and upp.company_tin = '9003247336' group by upp.reg_no, upp.tpt_cuo_nam, upp.cmp_nam, upp.item_total ; 

此查询产生波纹管错误:如何使用上的查询表别名在内部查询在子查询

ORA-00904: "UPP"."TPT_CUO_NAM": invalid identifier 00904. 00000 - "%s: invalid identifier"

+0

作为你的问题,它无法做到。让我们试着解释你想做什么?因为你的代码不清楚。我的猜测是,你只想为total_item_value的列添加2列的总和,但是你想为其他列添加4列的总和。那就对了? –

+0

今天提示:表别名! – jarlh

回答

0

尝试加入一个“衍生的表”而不是了采用复杂的“相关子查询”,“选择不同”。没有任何样本数据等,这是猜测,但它可能看起来更像这样:

SELECT 
     upp.reg_no 
    , upp.tpt_cuo_nam 
    , upp.cmp_nam 
    , upp.item_total 
    , d.total_item_value 
    , SUM(upp.code_tax_amount) 
FROM sigtasad.customs_import_data upp 
LEFT JOIN (
      SELECT 
        inn.reg_no 
       , inn.tpt_cuo_nam 
       , SUM(iva.total_item_value_afs) total_item_value 
      FROM sigtasad.customs_import_data inn 
      GROUP BY 
        inn.reg_no 
       , inn.tpt_cuo_nam 
      ) d ON upp.reg_no = d.reg_no 
        AND upp.tpt_cuo_nam = d.tpt_cuo_nam 
WHERE upp.reg_no = '38699' 
AND upp.company_tin = '9003247336' 
GROUP BY 
     upp.reg_no 
    , upp.tpt_cuo_nam 
    , upp.cmp_nam 
    , upp.item_total 
    , d.total_item_value 
; 
+0

感谢Bro确切的答案! @Used_By_Already –

+0

没问题。干杯。 –