select t.zjmc as CJFA,t.obj_id as TID,i.obj_id as IID,
(select sjymc from mw_app.jk_sjydy  where obj_id = i.sjyid) as CJDX,
(select rkdx from mw_app.jk_sjcj_item where t.obj_id = i.zjid) as RKDX,
(select cjms from mw_app.jk_sjcj_item where t.obj_id = i.zjid) as CJMS,
(select rznr from mw_app.pt_xt_log_item where obj_id = t.rzid) as RZ 
 from mw_app.jk_task_tec t,mw_app.jk_sjcj_item i where t.flid = 'ABEC3075-EA6B-4A36-BA0C-47CFFA228F32-00006' and t.obj_id = i.zjid
查询提示:单行子查询返回多个行
求高手解决
 
 

解决方案 »

  1.   

    (select sjymc from mw_app.jk_sjydy where obj_id = i.sjyid) as CJDX,
    (select rkdx from mw_app.jk_sjcj_item where t.obj_id = i.zjid) as RKDX,
    (select cjms from mw_app.jk_sjcj_item where t.obj_id = i.zjid) as CJMS,
    (select rznr from mw_app.pt_xt_log_item where obj_id = t.rzid) as RZ  
    这几条语句可能有查出不止一条数据的,就会出现这个错误,可单独查询试试
      

  2.   

    检查是否存在逻辑错误,如果没有的话,在每个子查询中,条件中加上and rownum<2 可避免返回多行的错误,写成select max(rkdx) from xxxx 这种格式,可以避免返回多行或不返回行的错误
      

  3.   


    (select sjymc from mw_app.jk_sjydy where obj_id = i.sjyid) as CJDX,
    (select rkdx from mw_app.jk_sjcj_item where t.obj_id = i.zjid) as RKDX,
    (select cjms from mw_app.jk_sjcj_item where t.obj_id = i.zjid) as CJMS,
    (select rznr from mw_app.pt_xt_log_item where obj_id = t.rzid) as RZ 在这几个查询中有返回多行的。。你可以单独测试下!!!
      

  4.   

    子查询加上 group by 子句
      

  5.   

    可以不用这么多子查询  from a,b,c,d应该还好点  本来from里面就包涵了子查询中的表