命令未通过子查询正确结束

时间:2015-11-11 02:21:19

标签: sql oracle

我想这样做: 创建一个视图,显示Cat值为Y且薪水比Cat值为Y的所有人的平均工资高至少25%的人的连接名称,JobTitle和Salary。三列标题应该是Name,JobTitle和Salary。行应按传统电话簿顺序排序。

这就是我输入的内容:

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命令未正确结束

对此的任何帮助都会很棒。 :)

2 个答案:

答案 0 :(得分:1)

至少,您的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);

答案 1 :(得分:0)

他只需要在第一个表之后添加一个逗号,然后输掉它。其余的都没问题。