大家好!
刚刚的SQL语句在各位的帮助下已经好了,但是我把他写道java里面却提示错误说缺少关键字select
我把他贴出来希望各位帮忙看看是怎么回事
String sql_ev_page = " SELECT   a.empid, "
                    + " eva_state_code, "
                    + " sum(sort_total_) "
+ " FROM ev_emp_s_result_v a,hr_employee c "
+ " WHERE a.empid =? "
+ " AND "
+ " eva_phase_no =? "
                +" and a.empid=c.empid "
                +" and datestarted<=to_date('2005-7-1','yyyy-mm-dd') and evatype<>'EVA_type01'"
                +"union all"
                +"select  empid, "
                + " eva_state_code, "
                + " sum(sort_total_) "
                +"from ev_emp_s_result_v "
                +"where evatype='EVA_type01'"  
                +" and empid=?"
              +"and eva_phase_no=?"  ;

解决方案 »

  1.   

    先把你的sql语句运行一下看看是不是语句的毛病再说~
      

  2.   

    你写出的sql没有空格,你可以把sql_ev_page 打印出来看看.
    例如 +"union all"
    应该写成+" union all "所有的字符串两端最好都加空格
      

  3.   

    又是你啊。使用sum不用group by的吗
      

  4.   

    .....那在仔细的看看你的sql语句吧~~~
      

  5.   

    我用sql在toad运行的啊,正常,但是写的代码却说并非所有变量都已经关联
      

  6.   

    chengmin19810620 (凡岂) 原来你在这呢,我还在刚才那个帖子上回呢,一看你已经结贴了。呵呵~~在+"union all"的前后各加一个空恪           
    变成+" union all  "倒数第二行+" and empid=?"的问号后面加空格
    变成+" and empid=?  "最后变成:
    String sql_ev_page = " SELECT   a.empid, "
                        + " eva_state_code, "
                        + " sum(sort_total_) "
    + " FROM ev_emp_s_result_v a,hr_employee c "
    + " WHERE a.empid =? "
    + " AND "
    + " eva_phase_no =? "
                    +" and a.empid=c.empid "
                    +" and datestarted<=to_date('2005-7-1','yyyy-mm-dd') and evatype<>'EVA_type01'"
                    +" union all "
                    +"select  empid, "
                    + " eva_state_code, "
                    + " sum(sort_total_) "
                    +"from ev_emp_s_result_v "
                    +"where evatype='EVA_type01'"  
                    +" and empid=? "
                  +"and eva_phase_no=?"  ;
      

  7.   

    才发现你只做查询为什么不做一个视图~把有关的表有关的字段联系起来然后你去查询视图不就行了你的sql语句太长找起来不是很容易~~
      

  8.   

    是的啊,我不知道怎么回事,但是我的SQL是没有问题的啊
      

  9.   

    改成这样还是错啊,提示并非所有变量已关联
      String sql_ev_page = " SELECT   a.empid, "
                        + " a.eva_state_code, "
                        + " a.sort_total_ "
    + " FROM ev_emp_s_result_v a,hr_employee c "
    + " WHERE a.empid =? "
    + " AND "
    + " eva_phase_no =? "
                    +" and a.empid=c.empid "
                    +" and datestarted<=to_date('2005-7-1','yyyy-mm-dd') and evatype<>'EVA_type01' "
                    +" union all "
                    +" select empid, "
                    + " eva_state_code, "
                    + " sort_total_ "
                    +" from ev_emp_s_result_v  "
                    +" where evatype='EVA_type01' "  
                    +" and empid=? "
                  +" and eva_phase_no=? "  ;
      

  10.   

    a.empid =?

    a.empid=c.empid 
    可以同时作为条件吗?
      

  11.   

    String sql_ev_page1 = "SELECT a.empid,a.eva_state_code, a.sort_total_  FROM ev_emp_s_result_v a,hr_employee c WHERE a.empid =?  AND  eva_phase_no =? and a.empid=c.empid and datestarted<=to_date('2005-7-1','yyyy-mm-dd') and evatype<>'"+EVA_type01+"'"; 
     String sql_ev_page=sql_ev_page1+" union all" +" select empid, eva_state_code, sort_total_  from ev_emp_s_result_v   where evatype='"+EVA_type01+"' and empid=?  and eva_phase_no=? ";
        这样试试。
      

  12.   

    不用改,把你的代码贴出来
    “并非所有变量都已经关联”一般来说是因为sql语句中“?”没有完全替换,少了几个参数
      

  13.   

    楼主可以尝试StringBuffer buffer=new StringBuffer();buffer.append("sql");然后转换下。这个风格看上去眼花 啊