简体   繁体   中英

mysql error: sub-query returns more than 1 row

I am using two tables here projections_report p and access_rights a . I can't find out why I am getting the error:

subquery returns more than one row

(case when paramChannel='AllC' then p.gl_sal_chan in 
      (case when dc_lob=0 then (select distinct pr.gl_sal_chan from 
          projections_report pr) else (select distinct pr1.gl_sal_chan
                 from projections_report pr1 where pr1.gl_sal_chan 
                 in (select distinct a.gl_sal_chan from access_rights 
                 a where a.userid= paramUserId)) end) 
 else p.gl_sal_chan = paramChannel end)

I tried using all and any keywords. Please help.

Thanks in advance.

I tried to do it in another way and got it right. Firstly I changed the statement in else condition of second case statement to

(select distinct gl_sal_chan from access_rights where userid = paramUserid)

as both return the same result(my bad) and secondly I changed the entire condition to

(case when (paramChannel = 'AllC' && dc_lob = 0) then '%' = '%' else 
    (case when (paramChannel='AllC' && dc_lob != 0) then 
    gl_sal_chan in (select distinct gl_sal_chan from access_rights where userid = paramUserid) 
else gl_sal_chan= paramChannel end)end)

Anyway Thanks @all :)

在使用子查询时,在子查询中使用LIMIT仅返回一条记录,它可能返回多个记录

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM