2013-10-21 44 views
2

QNS:项目说明和名为杰西施坦格任何病人所有的治疗治疗日期(即给定名称是杰西& FamilyName是施坦格)SQL错误:ORA-00936:缺少表达

我写道:

SELECT DISTINCT Description, Date as treatmentDate 
WHERE doothey.Patient P, doothey.Account A, doothey.AccountLine AL, doothey.Item.I 
AND P.PatientID = A.PatientID 
AND A.AccountNo = AL.AccountNo 
AND AL.ItemNo = I.ItemNo 
AND (p.FamilyName = 'Stange' AND p.GivenName = 'Jessie'); 

错误:

Error at Command Line:1 Column:30 
Error report: 
SQL Error: ORA-00936: missing expression 
00936. 00000 - "missing expression" 
*Cause:  
*Action: 

什么是缺失的表达?

+8

每个SELECT语句都有三个部分:“SELECT-> FROM-> WHERE”。如果你想返回整个记录集,可以省略WHERE。 你的FROM在哪里? – Satanicpuppy

回答

10

您的语句正在调用SELECT和WHERE,但未指定要选择哪个TABLE或记录集。

SELECT DISTINCT Description, Date as treatmentDate 
FROM (TABLE_NAME or SUBQUERY)<br> --This is missing from your query. 
WHERE doothey.Patient P, doothey.Account A, doothey.AccountLine AL, doothey.Item.I 
AND P.PatientID = A.PatientID 
AND A.AccountNo = AL.AccountNo 
AND AL.ItemNo = I.ItemNo 
AND (p.FamilyName = 'Stange' AND p.GivenName = 'Jessie'); 
-2
 
    1 

    select ename as name, 
     2 sal as salary, 
     3 dept,deptno, 
     4 from (TABLE_NAME or SUBQUERY) 
     5 emp, emp2, dept 
     6 where 
     7 emp.deptno = dept.deptno and 
     8 emp2.deptno = emp.deptno 
     9* order by dept.dname 

from (TABLE_NAME or SUBQUERY) 
* 
ERROR at line 4: 
ORA-00936: missing expression` select ename as name, 
sal as salary, 
dept,deptno, 
    from (TABLE_NAME or SUBQUERY) 
    emp, emp2, dept 
    where 
    emp.deptno = dept.deptno and 
    emp2.deptno = emp.deptno 
    order by dept.dname` 
2

你做了两个错误。我认为你错了FROM和WHERE关键字。

SELECT DISTINCT Description, Date as treatmentDate 
    FROM doothey.Patient P, doothey.Account A, doothey.AccountLine AL, doothey.Item.I --Here you use "." operator to "I" alias 
    WHERE -- WHERE should be located here. 
    P.PatientID = A.PatientID 
    AND A.AccountNo = AL.AccountNo 
    AND AL.ItemNo = I.ItemNo 
    AND (p.FamilyName = 'Stange' AND p.GivenName = 'Jessie');