2014-02-18 1 views
0

Query:SQL ORA-01427 ошибка одного запроса возвращение нескольких строк

SELECT DISTINCT st_str_hry.id_str_rt, 
    decode(co_strgp.nm_strgp,'HOLLAND & BARRETT','H&B','GNC UK','GNC')brandName 
FROM co_strgp, 
    st_str_hry 
WHERE co_strgp.id_strgp=st_str_hry.id_strgp 
    AND co_strgp.nm_strgp in(nvl(:brandName, 
           (SELECT co_strgp.nm_strgp 
            FROM co_strgp 
            WHERE id_strgp_lv='2' 
            AND id_strgp in 
             (SELECT DISTINCT id_strgp 
             FROM st_str_hry 
             WHERE id_str_rt in 
              (SELECT DISTINCT id_str_rt 
              FROM NBTY_TR_LTM_AER_RTN))))); 

здесь NVL часть бросает ora-01427 errorsingle query returning multiple rows, который говорит.

ответ

0

Перепишите часть кода, содержащего подзапрос в этом:

AND co_strgp.nm_strgp in(
      (SELECT nvl(:brandName,co_strgp.nm_strgp) 
      FROM co_strgp 
      WHERE id_strgp_lv='2' 
       AND id_strgp in 
        (SELECT DISTINCT id_strgp 
        FROM st_str_hry 
        WHERE id_str_rt in 
          (SELECT DISTINCT id_str_rt 
          FROM NBTY_TR_LTM_AER_RTN))))); 
+0

WOW ... его workin спасибо alot @ kordirko ... im действительно благодарны u. – saniya

0

запрос

SELECT co_strgp.nm_strgp 
    FROM co_strgp 
WHERE id_strgp_lv='2' 
    AND id_strgp in (SELECT DISTINCT id_strgp 
         FROM st_str_hry 
        WHERE id_str_rt in (SELECT DISTINCT id_str_rt 
              FROM NBTY_TR_LTM_AER_RTN)) 

возвращает несколько строк, но он должен возвращать только один ряд

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

  • Нет связанных вопросов^_^