Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Был бы очень рад если кто помог бы с запросом... [D5, Oracle]


sgs ©   (2002-02-06 12:13:00) 

Есть вот такой вот запрос (см. ниже). Причем он работает. Но не совсем корректно, т.к. "(+)" в последней строке надо подставлять к тому или иному выражению в зависимости от того в какой таблице получилось больше записей. А как этого избежать я и не знаю...

select * from
(
select rownum rn1, a.*
from (select * from tbl_operation_types ot
where ot.MARKET_ID = 1
) a
) aa
,
(
select rownum rn2, b.*
from (select * from tbl_operation_types ot
where ot.MARKET_ID = 2
) b
) bb
where aa.rn1(+) = bb.rn2


XCB   (2002-02-06 13:19:00) [1]

нужно получить липовую выборку которая будет включать в себя записи из обоих подмножеств, а затем объединить с ней каждую из мелких... только непонятно зачем ты выводиших такими парами... ну да ладно...

select * from
(select rownum rn, x.*
from (select * from tbl_operation_types ot
where ot.MARKET_ID = 1 or ot.MARKET_ID = 2
) x )xx,
(select rownum rn1, a.*
from (select * from tbl_operation_types ot
where ot.MARKET_ID = 1
) a) aa,
(select rownum rn2, b.*
from (select * from tbl_operation_types ot
where ot.MARKET_ID = 2
) b) bb
where xx.rn = aa.rn1(+)
and xx.rn = bb.rn2(+)


Наверх

Титульная страница Поиск, карта сайта Написать письмо