【发布时间】:2015-03-01 20:33:46
【问题描述】:
我知道 oracle 不允许使用 AS 命令来使用表别名,因此有人建议我使用如下解决方案。
SELECT Temp.avgsale
FROM (SELECT o.received, AVG(p.price*d.qty+d.sfee) avgsale
FROM orders o, parts p, odetails d
GROUP BY o.received) Temp
WHERE Temp.avgsale=(SELECT MIN(Temp.avgsale) FROM Temp);
但是,当我运行它时出现以下错误:ERROR at line 4:
ORA-00942: table or view does not exist。当我尝试在SELECT 查询的开头设置别名时,我也会遇到类似的错误:Temp (SELECT ...)。任何帮助将不胜感激,因为我在查询有什么问题时遇到了麻烦。
【问题讨论】:
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(20 多年前),不鼓励使用它 -
我认为 Oracle 自 2001 年(9i 发布时)以来仅支持 ANSI JOIN 语法。所以旧式的 JOIN 已经过时了 14 年。 :)