Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > sql + insert + select


Автор: cra6 15.1.2008, 11:31
Проблема следующая
Есть три таблицы одна из них view
в табл MON_VIP_ALERT вставляются уникальные записи  из CURR_TRANS_VIEW и  MON_VIP_CARDS причём так ,что запись должна содержать поле hpan из таблицы MON_VIP_CARDS .Уникальность по полю utrno. 

Проблема в том что  запрос вставляет дублирующиеся значения 


i
Код

nsert into MON_VIP_ALERT (12 полей в таблице MON_VIP_ALERT ) select to_date(udate , 'yyyy.mm.dd'),ещё 11 полей из следующих таблиц
 from CURR_TRANS_VIEW,MON_VIP_CARDS
where hpan  in (select distinct MVC_HPAN from mon_vip_cards) and utrnno NOT IN (select distinct MVA_UTRNO from MON_VIP_ALERT);




в то время как запрос

Код

select * from Curr_trans_view where hpan  in (select distinct MVC_HPAN from mon_vip_cards) and utrnno NOT IN (select distinct MVA_UTRNO 
from MON_VIP_ALERT)


их не возвращает...(возвращает не дублирующиеся значение как и надо)
Буду благодарен за любую помощь...

Автор: DimW 15.1.2008, 12:01
Цитата(cra6 @  15.1.2008,  11:31 Найти цитируемый пост)
код SQL
1:

insert into MON_VIP_ALERT (12 полей в таблице MON_VIP_ALERT ) select to_date(udate , 'yyyy.mm.dd'),ещё 11 полей из следующих таблиц from CURR_TRANS_VIEW,MON_VIP_CARDS where hpan  in (select distinct MVC_HPAN from mon_vip_cards) and utrnno NOT IN (select distinct MVA_UTRNO from MON_VIP_ALERT);


невидно как связаны между собой таблицы CURR_TRANS_VIEW и MON_VIP_CARDS, скорей всего их содержимое перемножается друг на друга, отсюда и дубликаты.

просьба - не выкладывайте запросы в форум в одну строку, очень сложно их читать!

Автор: behelit_ru 12.2.2008, 23:52
=) запросы вообще-то разные - в первом используется две таблицы в селекте, а во втором - одна

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)