Имя: Пароль:
1C
1С v8
8.2 Условие в запросе
0 Aswed
 
01.11.11
18:23
Есть пакет запросов.
В первом я формирую выборку данных и создаю временную таблицу.
Как во втором запросе пакета мне отобрать все данные КРОМЕ выбранных в первом и занесенных во временную таблицу?

Как записать условие не соображу.
1 palpetrovich
 
01.11.11
18:26
НЕ ?
2 vinogradъ
 
01.11.11
18:26
смотря что навыбирал в ВТ... not in
3 luckyluke
 
01.11.11
18:26
(0) смотря куда сколько полей и что за таблица, можно например так:
Где поле1 Не В (Выбрать ВТ_Первогопакета.Поле1 ИЗ ВТ_Первогопакета КАК ВТ_Первогопакета)
4 Aswed
 
01.11.11
18:30
А ВТ всего одна колонка с элементами справочника.
5 GROOVY
 
01.11.11
18:30
(4), (3) Все правильно написал.
6 Aswed
 
01.11.11
18:31
Ок, спасибо. Тады побежал ваять)
7 KAO111
 
01.11.11
18:31
иногда лучше левое соединение с временной иаблицей где ВТ_Первогопакета.Поле1 есть NULL
8 GROOVY
 
01.11.11
18:33
(7) Проверка на NULL дико тормозная штука.
9 KAO111
 
01.11.11
18:37
(8) надо проверять. в файловой базе "Не В (Выбрать" работает довольно медленно, несмотря на наличие индекса.
В клиент-серверной базе временная таблица должна быть обязательно приндексирована по полю, и в этом случае возможно, что пдан запроса будет один и тот же
10 Aswed
 
01.11.11
18:41
(9) Учел, спасибо
11 Aswed
 
01.11.11
18:42
(7) Ну так и было реализовано. Но как то мне не нравится такой подход)
12 KAO111
 
01.11.11
18:46
(11) конечно, зависит от количсва записей во временной таблице, но у нас столкулись со случаем, когда созданный файловый распределенный узел работал значительно медленнее, на проверках НЕ В, чем ЕСТЬ NULL
причем в основной SQL базе этого было не заметно.