2012-08-22 3 views
0

Здесь я использую две таблицы projections_report p и access_rights a. Я не могу понять, почему я получаю сообщение об ошибке:mysql error: sub-query возвращает более 1 строки

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) 

Я пытался использовать все и любые ключевые слова. Пожалуйста помоги.

Заранее спасибо.

+0

ошибка говорит, что все это, и официальные документы также объяснить. –

+0

Пожалуйста, поделитесь всем своим кодом для этого запроса, поскольку общий код кажется только частью. Таким образом, это могло бы дать более понятную возможность зрителям лучше ответить на это. – Sami

ответ

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:)

0

USE LIMIT в вложенных запросах возвращать только одну запись, как вы используете отчетливые, он может вернуть более одной записи

+0

на самом деле подзапросы должны возвращать более одной записи, поэтому я использую разные и ключевые слова. но в любом случае спасибо, что я получил его прямо сейчас. @samsh – Sagar878748

Смежные вопросы