2017-09-25 2 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 ; 

cette requête générer erreur ci-dessous:comment utiliser alias de table de requête supérieure dans la requête interne dans la sous-requête

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

+0

Comme votre question, il est incapable de faire. Essayons d'expliquer ce que tu veux faire? parce que le code ne s'efface pas. Ma conjecture est que vous voulez faire la somme avec le groupe par 2 colonnes pour seulement la colonne de total_item_value mais que vous voulez additionner avec le groupe par 4 colonnes pour d'autres colonnes. C'est vrai? –

+0

Astuce d'aujourd'hui: alias de table! – jarlh

Répondre

0

Essayez de rejoindre une « table dérivée » au lieu d'un « sous-requête corrélée » complexe qui utilise « select distinct". Sans données d'exemple, etc. c'est quelque chose d'une supposition mais cela peut ressembler plus à ceci:

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

Merci Bro c'est la réponse exacte! @Used_By_Already –

+0

Aucun problème. À votre santé. –