SELECT e.ename,sum(d.qty*p.price)
FROM employees e,
(SELECT ono,eno FROM orders WHERE EXTRACT(YEAR FROM received)=2009) o,
odetails d ,parts p
WHERE e.eno=o.eno AND o.ono=d.ono AND d.pno=p.pno
GROUP BY e.eno,e.ename上面这句可以正常执行,但是我将FROM子句里的列名更改了之后就不行了,下面是更改后的语句SELECT e.ename,sum(d.qty*p.price)
FROM employees e,
(SELECT ono,eno FROM orders WHERE EXTRACT(YEAR FROM received)=2009) o(ono,eno),#这里加上as也不行
odetails d ,parts p
WHERE e.eno=o.eno AND o.ono=d.ono AND d.pno=p.pno
GROUP BY e.eno,e.ename
正在学习写sql语句,遇到了这个问题,在Google上查了半天没找到原因,希望哪位牛人帮忙解决下

解决方案 »

  1.   

    From子句,o后面你为什么要加上(ono,eno)呢,这是多余的,FROM后面接表
    语法错误
      

  2.   

    不可以这样命名的如果你要重命名,就是加别名,可以这样:select column1 as empid from table;
      

  3.   

    from 子句中,如果有select子查询的话,要对这个select子查询的结果表加别名的