select * from ( select rownum temp_num,temp.* from (  select   a.Year,ROW_NUMBER() OVER(ORDER BY d.EPCode, TO_NUMBER( a.ERName )) RowNum,   a.ERUID,a.ERID,a.EPID,a.ERName,b.ERUName, d.EPName,d.EPCode,  '第'+TO_CHAR(TO_NUMBER(SUBSTR(a.ERName,7,3)), '999')+'考场'  CERName,  TO_CHAR(a.StandCount, '99')+' 人'  StandCount,a.ERUnitBuilding,a.ERUnitRoom,a.REMARK , case a.Combination when 1  then '3科'  when 2  then '2科'  when 3  then '1科'  when 4  then '3科、2科' when 6  then '三种混合'  else  '1科、2科' end   CombinationTypeText  from  tbExamRoot a INNER  JOIN  tbExamRoomUnit b  on a.ERUID=b.ERUID  and a.EPID=b.EPID   LEFT JOIN tbYearEPoint c  on a.Year=c.Year and a.EPID=b.EPID and b.EPID=c.EPID   LEFT JOIN tbExamPoint d  on a.EPID=d.EPID    where 1=1   and a.Year='2011'   ORDER BY d.EPCode, TO_NUMBER(a.ERName ) ) temp where rownum<=10) where temp_num>0
就是这句,请问哪里有错?

解决方案 »

  1.   

    错误提示为“未找到要求的FROM关键字”。  
    先谢谢了!
      

  2.   

    PreparedStatementCallback; bad SQL grammar [select * from ( select rownum temp_num,temp.* from (  select   a.Year,ROW_NUMBER() OVER(ORDER BY d.EPCode, TO_NUMBER( a.ERName )) RowNum,   a.ERUID,a.ERID,a.EPID,a.ERName,b.ERUName, d.EPName,d.EPCode,  '第'+TO_CHAR(TO_NUMBER(SUBSTR(a.ERName,7,3)), '999')+'考场'  CERName,  TO_CHAR(a.StandCount, '99')+' 人'  StandCount,a.ERUnitBuilding,a.ERUnitRoom,a.REMARK , case a.Combination when 1  then '3科'  when 2  then '2科'  when 3  then '1科'  when 4  then '3科、2科' when 6  then '三种混合'  else  '1科、2科' end   CombinationTypeText  from  tbExamRoot a    INNER  JOIN  tbExamRoomUnit b  on a.ERUID=b.ERUID  and a.EPID=b.EPID   LEFT JOIN tbYearEPoint c  on a.Year=c.Year and a.EPID=b.EPID and b.EPID=c.EPID   LEFT JOIN tbExamPoint d  on a.EPID=d.EPID    where 1=1   and a.Year='2011'   ORDER BY d.EPCode, TO_NUMBER(a.ERName ) ) temp where rownum<=10) where temp_num>0]; nested exception is java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字
      

  3.   

    select * from ( select rownum temp_num,temp.* from ( select a.Year,ROW_NUMBER() OVER(ORDER BY d.EPCode, TO_NUMBER( a.ERName )) RowNum, a.ERUID,a.ERID,a.EPID,a.ERName,b.ERUName, d.EPName,d.EPCode, '第'+TO_CHAR(TO_NUMBER(SUBSTR(a.ERName,7,3)), '999')+'考场' CERName, TO_CHAR(a.StandCount, '99')+' 人' StandCount,a.ERUnitBuilding,a.ERUnitRoom,a.REMARK , case a.Combination when 1 then '3科' when 2 then '2科' when 3 then '1科' when 4 then '3科、2科' when 6 then '三种混合' else '1科、2科' end CombinationTypeText from tbExamRoot a INNER JOIN tbExamRoomUnit b on a.ERUID=b.ERUID and a.EPID=b.EPID LEFT JOIN tbYearEPoint c on a.Year=c.Year and a.EPID=b.EPID and b.EPID=c.EPID LEFT JOIN tbExamPoint d on a.EPID=d.EPID where 1=1 and a.Year='2011' ORDER BY d.EPCode, TO_NUMBER(a.ERName ) ) temp where rownum<=10) where temp_num>0
      

  4.   

    开头那里,
    select rownum temp_num
    改为
    select temp.rownum temp_num
    试试.
      

  5.   

    select *
      from (select rownum temp_num, temp.*
              from (select a.Year,
                           ROW_NUMBER() OVER(ORDER BY d.EPCode, TO_NUMBER(a.ERName)) RowNum,
                           a.ERUID,
                           a.ERID,
                           a.EPID,
                           a.ERName,
                           b.ERUName,
                           d.EPName,
                           d.EPCode,
                           '第' +
                           TO_CHAR(TO_NUMBER(SUBSTR(a.ERName, 7, 3)), '999') + '考场' CERName,
                           TO_CHAR(a.StandCount, '99') + ' 人' StandCount,
                           a.ERUnitBuilding,
                           a.ERUnitRoom,
                           a.REMARK,
                           case a.Combination
                             when 1 then
                              '3科'
                             when 2 then
                              '2科'
                             when 3 then
                              '1科'
                             when 4 then
                              '3科、2科'
                             when 6 then
                              '三种混合'
                             else
                              '1科、2科'
                           end CombinationTypeText
                      from (((tbExamRoot a INNER JOIN tbExamRoomUnit b
                            on(a.ERUID = b.ERUID and a.EPID = b.EPID)) LEFT JOIN
                            tbYearEPoint c on(a.Year = c.Year and a.EPID = b.EPID and
                                               b.EPID = c.EPID)) LEFT JOIN
                            tbExamPoint d on a.EPID = d.EPID)
                     where 1 = 1
                       and a.Year = '2011'
                     ORDER BY d.EPCode, TO_NUMBER(a.ERName)) temp
             where rownum <= 10)
     where temp_num > 0
    试下
      

  6.   

    4楼试了5楼的办法,现在错误如下:user.table.column, table.column 或列说明无效7楼的不行,还是未找到要求的FROM关键字。。先谢谢大家! 继续顶!