我在projections_report p
和access_rights a
使用了两个表格。我无法找出我收到错误的原因:
子查询返回多行
(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)
我尝试使用所有和任何关键字。请帮忙。
提前致谢。
答案 0 :(得分:0)
我尝试以另一种方式做到并且做对了。首先,我将第二个案例陈述的其他条件中的陈述改为
(select distinct gl_sal_chan from access_rights where userid = paramUserid)
因为两者都返回相同的结果(我的坏),其次我将整个条件更改为
(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)
无论如何,谢谢@all:)
答案 1 :(得分:0)
子查询中的USE LIMIT只返回一条记录,因为您使用的是distinct,它可能会返回多条记录