Страница 1 из 2

Выборка с условием "не"

Добавлено: 17 янв 2005, 16:51
Sv.Stinger
Есть две таблицы transp и katzak, как сделать выборку только тех полей в transp, на которые в katzak.ctransp ничего нет. То есть те, у которых katzak.ctransp не равно transp.nrec.
Существует ли способ это сделать ?
Буду благодарен за помощь.
Если это уже где-нить описывалось, дайте плз ссылку.
Сорри за ламерство =)

Re: Выборка с условием "не"

Добавлено: 17 янв 2005, 16:58
Vitas
0==katzak.ctransp
или филтр в запрос, где
and (katzak.ctransp<>transp.nrec)

Re: Выборка с условием "не"

Добавлено: 17 янв 2005, 17:08
Sv.Stinger
При 0==katzak.ctransp пишет нужен ключ ctransp для katzak а при katzak.ctransp<>transp.nrec (я уже пробовал) -впадает в бесконечность, может я неправильно поставил вопрос, в общем мне надо чтоб выбрались только те ТС на которые не заведены заказы.

Re: Выборка с условием "не"

Добавлено: 17 янв 2005, 17:17
Johny
А если так 0==katzak.ctransp(noindex)

Re: Выборка с условием "не"

Добавлено: 17 янв 2005, 17:23
Sv.Stinger
Если так, то в ответ пустота =(

Re: Выборка с условием "не"

Добавлено: 17 янв 2005, 17:26
Sv.Stinger
Просто если 0==katzak.ctransp то это заказ в котором не указано ТС, а надо ТС для которого НЕТ заказа, чет я совсем загрузился ... надо покурить ...

Re: Выборка с условием "не"

Добавлено: 17 янв 2005, 17:46
Max_Fin
Если я правильно понял, то
select transp.*
from transp, katzak
where
((
transp.nrec == katzak.ctransp (noindex)
))
and not IsValidAll(tnKatZak);

правда ооооочень мееееедленоооооо должно работать.

Re: Выборка с условием

Добавлено: 17 янв 2005, 19:03
Sv.Stinger
Да работает оооочень медленно =), правда и результата не дает, ща еще потестю ...

Re: Выборка с условием

Добавлено: 17 янв 2005, 19:42
Sv.Stinger
Чет никак не хочет ... хм как же сделать...
Через гемор почти получается, но должен же быть более простой способ ...

Re: Выборка с условием

Добавлено: 18 янв 2005, 14:30
Vitas
select *
from transp, katzak
where
((
transp.nrec == katzak.ctransp (noindex)
and (katzak.ctransp<>transp.nrec)
));

Re: Выборка с условием

Добавлено: 18 янв 2005, 14:33
Vitas
Блин, чего лажу я какую то написал,
попробуй лучше
select *
from transp
where
(transp.nrec<>katzak.ctransp)
;

Re: Выборка с условием

Добавлено: 18 янв 2005, 15:05
stray
если для отчета, можно предложить такую штуку:
- сваливаешь katzak.ctransp во временную таблицу (чтобы по одному nrec-у было)
- дальше проверяешь transp.nrec во врем.табл. (ес нет выводишь из transp что нужно)
работает дост. быстро, не виснет!

Re: Выборка с условием

Добавлено: 18 янв 2005, 18:46
blackoff
может вот так?

select * from transp
where
((transp.nrec == katzak.ctransp))
and Not(IsValidAll(1))
;

не проверял, так что может и вылететь галка ;) ;D

Re: Выборка с условием

Добавлено: 18 янв 2005, 18:53
blackoff
А ну уже Max_fin предлагал.... не заметил сорри ;)
А вроде другого варианта и нет :((((

Re: Выборка с условием

Добавлено: 19 янв 2005, 17:00
Sv.Stinger
Вариант работающий есть, но он формируется, с тем количеством заказов что у меня от 3 часов, что ни есть гуд, а быстрые варианты как-то криво работают ...