ORA-01427: однострочный подзапрос возвращает более одной ошибки строки | Но я хочу несколько значений - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть запрос ниже, в который я создаю, используя подзапрос, который возвращает

ORA-01427 : подзапрос с одной строкой возвращает более одной строки ошибка.

Но я хочу, чтобы все значения возвращались подзапросом, и для условия соединения не осталось другого столбца. Ниже приведен мой пример запроса.

select name, 
       dob, 
       cdate, 
      (select value 
         from item a, 
              books b 
        where a.id = b.id 
          and a.newid = b.newid 
          and a.id = s.id 
          and a.bid = s.cid
          and a.eventid=1) col_value,
      (select value2
         from item a, 
              books b 
        where a.id = b.id 
          and a.newid = b.newid 
          and a.id = s.id 
          and a.bid = s.cid
          and a.eventid=1) col_value2
  from sample s, 
       purchase p
 where s.id = p.id
   and s.cid = p.cid

Требуемый вывод

enter image description here

Нужно ли применять Группа по? Пожалуйста, дайте мне знать ваши предложения.

Ответы [ 2 ]

2 голосов
/ 26 февраля 2020

Немного сложнее без данных, но попробуйте:

select name -- please use table alias so you know which table the value is from (s, p or cv)
       , dob
       , cdate
       , cv.value
from sample s 
left join purchase p on s.id=p.id and s.cid=p.cid --or just join
left join (select value, a.id, a.bid  --or just join
           from item a
           left join books b  --or just join
           on a.id=b.id and a.newid=b.newid) cv
on cv.id = s.id and cv.bid = s.cid           
left join (select value2
           from item a 
           left join books b 
           on a.id = b.id and a.newid = b.newid) cv2
on cv2.id = s.id and cv2.bid = s.cid
where cv2.eventid=1;
0 голосов
/ 26 февраля 2020
select name, 
       dob, 
       cdate, 
      (select value 
         from  
              books b 
        where a.id = b.id 
          and a.newid = b.newid ) col_value,
      (select value2
         from 
              books b 
        where a.id = b.id 
          and a.newid = b.newid ) col_value2
  from sample s, 
       purchase p,item a
 where s.id = p.id
   and s.cid = p.cid
   and a.id(+)=s.id
   and a.bid(+)=s.cid
   and a.eventid(+)=1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...