Sql 命令未以子查询正确结束

Sql 命令未以子查询正确结束,sql,oracle,Sql,Oracle,我正在尝试这样做: 创建一个视图,该视图将显示Cat值为Y且其薪资至少比Cat值为Y的所有人员的平均薪资高25%的人员的连在一起的姓名、职务和薪资。三列标题应为姓名、职务和薪资。这些行应按传统的电话簿顺序排序 这就是我输入的内容: CREATE VIEW A11T1 AS SELECT initcap(FNAME) ||' '|| initcap(LNAME) as Name, initcap(JobTitle) as JobTitle, Salary FROM PERSON11

我正在尝试这样做: 创建一个视图,该视图将显示Cat值为Y且其薪资至少比Cat值为Y的所有人员的平均薪资高25%的人员的连在一起的姓名、职务和薪资。三列标题应为姓名、职务和薪资。这些行应按传统的电话簿顺序排序

这就是我输入的内容:

CREATE VIEW A11T1 AS 
SELECT initcap(FNAME) ||' '|| initcap(LNAME) as Name, 
initcap(JobTitle) as JobTitle, Salary
FROM PERSON11 
    (select avg(salary) as averagesalary
     from PERSON11
     Where upper(cat) = 'Y')    
WHERE salary >= (1.25 * averagesalary)
Order by InitCap(Lname), InitCap(Fname)
我得到这个错误:

SQL命令未正确结束


这方面的任何帮助都将非常有用。:)

至少,您的
from
子句需要一个
join

SELECT ( initcap(FNAME) ||' '|| initcap(LNAME) ) as Name,
       initcap(JobTitle) as JobTitle, Salary
FROM PERSON11 CROSS JOIN
     (select avg(salary) as averagesalary
      from PERSON11
      Where upper(cat) = 'Y'
     ) x
WHERE salary >= (1.25 * x.averagesalary)
ORDER BY InitCap(Lname), InitCap(Fname);

他只需在第一个表后添加一个逗号,就可以按顺序丢失订单。剩下的没问题

请用您正在使用的数据库标记您的问题。为什么我需要加入已经在同一个表中的信息?@TJ.Anderson。你在问你的问题出了什么问题。这就是我要回答的。@TJAnderson-
averagesalary
不在“同一个表”中-它是由SELECT语句生成的,SELECT语句在逻辑上定义了一个不同的表。为了解释这是如何工作的,如果您的讲师提出问题,您可能需要查看交叉连接在您不熟悉的情况下的作用。最好的。