我在表格中查询时标识符无效

时间:2017-03-29 09:37:03

标签: sql oracle navicat

在我的表ALI_LEASE_IN中,我有一个DEF14字段,(抱歉红框,选择DEF16),您可以在我的快照中看到。

enter image description here

但是当我执行查询sql:

select b.equip_name a2,b.model b3,b.def2 c4,b.def3 d5,
  ALI_LEASE_IN.DEF14 as e6,
  '' f7,
  To_char(b.pre_rent) h9,
  b.start_date k10,
  sup.name j11,
  org.name l12, 
  b.memo o13,
  h.bill_date bdate,
  h.pk_group
from ali_lease_in_b b,ali_lease_in h,bd_supplier sup,org_itemorg org 
where b.pk_lease_in=h.pk_lease_in 
  and h.pk_supplier=sup.pk_supplier 
  and b.pk_org=org.pk_itemorg

但是我在下面收到了这个错误:

[SQL]select b.equip_name a2,b.model b3,b.def2 c4,b.def3 d5,  
ALI_LEASE_IN.DEF14 as e6,  
'' f7,  
To_char(b.pre_rent) h9,b.start_date k10,sup.name j11,org.name l12, b.memo o13,h.bill_date bdate,h.pk_group  
from ali_lease_in_b b,ali_lease_in h,bd_supplier sup,org_itemorg org   
where b.pk_lease_in=h.pk_lease_in   
and h.pk_supplier=sup.pk_supplier   
and b.pk_org=org.pk_itemorg  
--and h.pk_org in (parameter('param3'))  
                   --     and substr(h.bill_date,1,10) >= parameter('param1')  
                    --    and substr(h.bill_date,1,10) <= parameter('param2')  
[Err] ORA-00904: "ALI_LEASE_IN"."DEF14": invalid identifier

我不知道为什么,我的快照显示DEF14在我的桌子上是exsits。

我的环境是:

数据库是Oracle, 视觉软件是navicat。

2 个答案:

答案 0 :(得分:1)

我看到了你的代码:

from ali_lease_in_b b,ali_lease_in h,bd_supplier sup,org_itemorg org 

这一行你得到表ali_lease_in别名h

所以你应该使用别名,改变行:

ALI_LEASE_IN.DEF14 as e6,

到:

h.DEF14 as e6

答案 1 :(得分:1)

当您为DEF14提供了表别名时,您已经引用了ALI_LEASE_IN。将该列更改为h.DEF14 AS e6。

SELECT b.equip_name a2,
   b.model b3,
   b.def2 c4,
   b.def3 d5,
   h.DEF14 AS e6,
   '' f7,
   TO_CHAR (b.pre_rent) h9,
   b.start_date k10,
   sup.name j11,
   org.name l12,
   b.memo o13,
   h.bill_date bdate,
   h.pk_group
FROM   ali_lease_in_b b,
   ali_lease_in h,
   bd_supplier sup,
   org_itemorg org
WHERE      b.pk_lease_in = h.pk_lease_in
   AND h.pk_supplier = sup.pk_supplier
   AND b.pk_org = org.pk_itemorg