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;
1条答案
按热度按时间ny6fqffe1#
没有名为
R
的表或别名,因此Oracle无法找到该列。除此之外,查询看起来是错误的。
title
?如果列名称包含例如Mr.
或Mrs.
,则不要将其括在单引号中。即使它只是一个字符串,to_char
-ing已经是一个char的东西也没有意义group by
子句必须包含所有非聚合列,并且不能在其中使用别名-必须分别指定连接到tenant_name
的所有列假设
damage
表的自连接是错误的,您可能要查找的查询是但是,如果没有表的描述,很难猜测您想要什么。