вернуть данные нескольких столбцов из подзапроса - PullRequest
2 голосов
/ 24 июня 2019

У меня есть функциональный запрос, однако теперь мне нужно добавить дополнительный столбец, в котором будут отображаться данные из одного из подзапросов.Я немного застрял на том, как это сделать.

Я рассмотрел вопрос об изменении существующего sql в запрос типа соединения, но безуспешно.

--
select case when max(intid) != min(intid) then max(intid) end as INTID_NEW,min(intid) as INTID_PREV
from   DFUND
where   ANum in
    (select ANum from DFUND              
        where intid in
            (select intid as pair
            from AReview
            where Rule = 3366
            and trunc(RECVDDATE) >= trunc(sysdate-4) 
                        )
    )
group by ANum
order by ANum;
--

Вот что возвращает текущий запрос

 INTID_NEW INTID_PREV
---------- ----------
   4421156    3450805
   4426479    3174829

-

Я бы хотел вернуть следующее:

 INTID_NEW INTID_PREV RECVDDATE
---------- ---------- -----------
   4421156    3450805 01-MAY-2019
   4426479    3174829 04-MAY-2019

-

1 Ответ

1 голос
/ 24 июня 2019

Вы можете использовать INNER JOIN вместо предложения IN и выбрать из подзапроса также нужный вам столбец

    select case when max(intid) != min(intid) then max(intid) end as INTID_NEW, min(intid) as INTID_PREV, t.my_RECVDDATE 
    from   DFUND
    INNER JOIN (
        select ANum,  t2.my_RECVDDATE
        from D  
        INNER JOIN   (
          select intid , trunc(RECVDDATE) as my_RECVDDATE
                from AReview
                where Rule = 3366
                and trunc(RECVDDATE) >= trunc(sysdate-4) 
          ) t2 ON t2.intid =  DFund.intid
    ) t on t.ANum = DFUND.ANum 
    group by ANum,  t.my_RECVDDATE 
    order by ANum;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...