oracle 如何解决SQL错误:ORA-00904:“R”.“TENANT_NO”:无效标识符00904,00000 -“%s:无效标识符”*

2exbekwf  于 2023-05-16  发布在  Oracle
关注(0)|答案(1)|浏览(109)

如何解决这个错误,为什么会出现黄线?
我尝试重写JOIN语句,但仍然不起作用

ny6fqffe

ny6fqffe1#

没有名为R的表或别名,因此Oracle无法找到该列。
除此之外,查询看起来是错误的。

  • 什么是title?如果列名称包含例如Mr.Mrs.,则不要将其括在单引号中。即使它只是一个字符串,to_char-ing已经是一个char的东西也没有意义
  • group by子句必须包含所有非聚合列,并且不能在其中使用别名-必须分别指定连接到tenant_name的所有列

假设damage表的自连接是错误的,您可能要查找的查询是

SELECT t.tenant_no,
         t.title || ' ' || t.tenant_givname || ' ' || t.tenant_famname   AS tenant_name,
         TO_CHAR (SUM (d.damage_cost), '$9990.00')                       AS total_cost_of_damages
    FROM rent.damage d
         JOIN rent.tenant t
            ON     t.tenant_no = d.tenant_no
               AND t.rent_agreement_no = d.rent_greement_no
   WHERE EXTRACT (YEAR FROM d.damage_datetime) = 2022
GROUP BY t.tenant_no,
         t.title,
         t.tenant_givname,
         t.tenant_famname
ORDER BY total_cost_of_damages DESC, tenant_no ASC;

但是,如果没有表的描述,很难猜测您想要什么。

相关问题