IN пункт param для подзапроса - PullRequest
       6

IN пункт param для подзапроса

0 голосов
/ 11 октября 2018

Следующий запрос дает мне самую последнюю дату / время конкретного дня.

select * 
from calendar c 
where c.date= to_date('2018/03/09','yyyy/mm/dd') 
 and c.date >= all(select date from calendar c2 where c.date = c2.date)

как я могу использовать вышеуказанный запрос в качестве подзапроса и передавать предложение в качестве параметра для следующего запроса?

select * from (

/*above query inside and iterate over in param*/

)abc where abc.date in (to_date('2018/03/09','yyyy/mm/dd') ,to_date('2018/03/10','yyyy/mm/dd') )

Ответы [ 3 ]

0 голосов
/ 11 октября 2018

Я не знаю, правильно ли я вас понял.Это то, что вы хотите сделать?

SELECT * FROM (
    SELECT * 
    FROM calendar c 
    WHERE c.d_date= to_date('2018/03/09','yyyy/mm/dd') 
            AND c.d_date >= all(SELECT d_date FROM calendar c2 WHERE c.d_date = c2.d_date)
)abc WHERE abc.d_date IN (to_date('2018/03/09','yyyy/mm/dd') ,to_date('2018/03/10','yyyy/mm/dd') );

Я изменил имя столбца даты на d_date, потому что это зарезервированное слово.

0 голосов
/ 11 октября 2018

извините, я имел в виду параметризацию подзапроса с использованием внешнего запроса и смог написать что-то вроде того, что служит цели

select * 
from calendar c 
where c.date >= all(select date from calendar c2 where c.date = c2.date) 
and c.date in (to_date('2018/03/09','yyyy/mm/dd'),to_date('2018/03/10','yyyy/mm/dd') )
0 голосов
/ 11 октября 2018
select * 
from calendar c 
where c.date in (to_date('2018/03/09','yyyy/mm/dd') ,to_date('2018/03/10','yyyy/mm/dd') )
 and c.date >= all(select date from calendar c2 where c.date = c2.date)

Попробуйте это.

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