Missing Expression in Oracle 11g subquery

197 views Asked by At

I'm trying to run this code in oracle 11g & get this error msg

// Error at line 4 ORA-00936: missing expression // The error is the 'j' @ "FROM JOB j," //

Here is the code:

WITH sq AS (SELECT j.measurenumber, j.enterdate, trunc(c.passedoffdate) PassedOffDate, 
d.yearid, d.weekid, d.quarterid, c, estimatesqft, e.totalamount EstimateTotal, 
j.storenumber, c.quoteid, c.measurebitfield, c.soldstatus, 
FROM JOB j, JOB_CLOSE c, dash_reportweek d, estimate_measure em,
estimate e,
WHERE   measurenumber = c.measurenumber
                AND j.measurenumber = em.measurenumber
                AND em.estimateid = e.estimateid
                AND j.measurenumber = o.measurenumber(+)
                AND o.measurenumber IS NULL
                AND j.enterdate BETWEEN d.startdate AND d.enddate
                AND d.yearid = 2018 AND c.measurebitfield = 1
                AND d.quarterid = 2)
SELECT sq.MEASURENUMBER,
       SQ.ENTERDATE, 
       SQ.YEARID,
       SQ.WEEKID,
       SQ.QUARTERID,
       SQ.PASSEDOFFDATE,
       SQ.ESTIMATESQFT,
       SQ.ESTIMATETOTAL,
       SQ.STORENUMBER,
       SQ.QUOTEID,
       QUOTEDOLLARAMMOUNT,
       SQFT, 
       SQ.SOLDSTATUS
  FROM SQ,
       (  SELECT sq.measurenumber, SUM (unitprice) sqft
            FROM sq, quoteitementry qi
           WHERE sq.quoteid = qi.quoteid AND qi.quoteelementid = 25007
        GROUP BY sq.measurenumber) v1,
       (  SELECT sq.measurenumber,
                 SUM (qi.quantity * qi.UNITPRICE) QuoteDollarAmmount
            FROM sq, quoteitementry qi
           WHERE sq.quoteid = qi.quoteid AND qi.active = 'T'
        GROUP BY sq.measurenumber) v2
WHERE     sq.measurenumber = v2.measurenumber(+)
       AND sq.measurenumber = v1.measurenumber(+);
1

There are 1 answers

2
APC On

If you look carefully at your code, at the point you highlight in your comment ...

 c.soldstatus, 
 FROM JOB j

... you will notice you have a trailing comma. The last column in query projection is followed by FROM not a comma. Because you have a comma Oracle is expecting another column to be named. Hence the exception.