在Oracle中使用左外部联接时的无效标识符

汤姆

我在oracle中用Left external join编写了一个查询,但是执行查询时出现ORA-00904: "b"."GROSS_DISCOUNT_AMOUNT": invalid identifier错误.TableB包含net_discount_number和gross_discount_amount列。

     select   
     a.GSMNO  GSMNO,
     a.NET_AMOUNT  net,
     a.GROSS_AMOUNT  gross,
     sum(b.net_discount_amount) net_discount, sum(b.gross_discount_amount) gross_discount,
     a.code code, a.seq_no
     from  tableA   a
LEFT OUTER JOIN 
    (select  id, code, seq_no, sum(gross_amount) gross_amount, sum(net_discount_amount), sum(gross_discount_amount) from tableB 
    group by id, code, seq_no)  
    b ON a.id = b.id and NVL(a.code,b.code) = NVL(b.code,-99) and  
    NVL(a._seq_no,-99)  = NVL(b.seq_no,-99)
    and a.gross_amount = b.gross_amount
 where  a.tvNo like  '123% and gsmno ='1111111111' 
 group by   
    a.GSMNO,
    a.NET_AMOUNT,
    a.GROSS_AMOUNT,
    a.code, a.seq_no
萨扬(Sayan Malakshinov)

您尚未为总和指定别名,它应该像这样:

select   
     a.GSMNO  GSMNO,
     a.NET_AMOUNT  net,
     a.GROSS_AMOUNT  gross,
     sum(b.net_discount_amount) net_discount, sum(b.gross_discount_amount) gross_discount,
     a.code code, a.seq_no
     from  tableA   a
LEFT OUTER JOIN 
    (select  id, code, seq_no, 
sum(gross_amount) gross_amount,
 sum(net_discount_amount) net_discount_amount,
 sum(gross_discount_amount) gross_discount_amount
from tableB 
    group by id, code, seq_no)  
    b ON a.id = b.id and NVL(a.code,b.code) = NVL(b.code,-99) and  
    NVL(a._seq_no,-99)  = NVL(b.seq_no,-99)
    and a.gross_amount = b.gross_amount
 where  a.tvNo like  '123% and gsmno ='1111111111' 
 group by   
    a.GSMNO,
    a.NET_AMOUNT,
    a.GROSS_AMOUNT,
    a.code, a.seq_no 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章