2012-03-21 74 views
9

estoy usando una instrucción SQL con una relación temporal, y estoy recibiendo el error ORA-009933: SQL command not properly ended¿El comando SQL no finalizó correctamente?

no veo nada de malo en la declaración, por lo que cualquier ayuda es muy apreciada. La declaración es:

SELECT Temp.name, 
     Temp.AvgSalary 
FROM (SELECT A.aid, 
       A.aname  AS name, 
       AVG(E.salary) AS AvgSalary 
     FROM Aircraft A, 
       Certified C, 
       Employees E) AS Temp; 

Gracias

+1

realmente? no hay condiciones de 'join' y no hay 'group by'? – Aprillion

+0

Tienes razón, necesito un 'group by'. Gracias –

Respuesta

20

Oracle no admite as de alias de tabla, sólo para los alias de columna y que son opcionales para ese uso => ​​eliminar todos as palabras clave;)

+0

Por esto, para aclarar, encontré que podía hacer 'SELECT LNAME || ',' || FNAME, ORG FROM myTable' en su lugar. He estado haciendo algo como esto: 'SELECT (SELECT LNAME || ',' || FNAME FROM myTable AS NAME), ORG FROM myTable', y este último formato con la subconsulta que resultó que ni siquiera necesitaba estaba causando este error 'Comando SQL no terminado correctamente', para mí. – vapcguy

7

No deberías Pon la temperatura AS. Al poner un alias en una tabla (o subconsulta) solo debe escribir el alias. Esto debería funcionar:

SELECT Temp.name, Temp.AvgSalary 
FROM (SELECT A.aid, A.aname AS name, AVG(E.salary) AS AvgSalary 
     FROM Aircraft A, Certified C, Employees E) Temp; 

Saludos,

Cuestiones relacionadas