|
Не вхождение элементов справочника в результат вложенного запроса | ☑ | ||
---|---|---|---|---|
0
Студиозус
28.11.13
✎
10:40
|
Есть запрос в котором надо выбрать все элементы справочника которых нет в регистре. Т.к. запрос является частю динамического списка делаю вложенным.
ВЫБРАТЬ Автомобили.Ссылка КАК Автомобиль, ЗаказыАвтомобилейОстатки.Заказ.Заказчик КАК Контрагент ИЗ Справочник.Автомобили КАК Автомобили ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыАвтомобилей.Остатки КАК ЗаказыАвтомобилейОстатки ПО (ЗаказыАвтомобилейОстатки.Автомобиль = Автомобили.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПланНаВыкупОбороты.Автомобиль КАК Автомобиль ИЗ РегистрНакопления.ПланНаВыкуп.Обороты КАК ПланНаВыкупОбороты) КАК ПланНаВукуп ПО (Автомобили.Ссылка = ПланНаВукуп.Автомобиль) ГДЕ НЕ Автомобили.ПометкаУдаления Вопрос: Как задать условие что бы выбирались все элементы справочника которых нет в результате выполнения вложеного запроса. Спасибо. |
|||
1
butterbean
28.11.13
✎
10:43
|
в ГДЕ добавь (НЕ ЗаказыАвтомобилейОстатки.Автомобиль ЕСТЬ NULL)
|
|||
2
butterbean
28.11.13
✎
10:44
|
(1) нет, надо так:
И ПланНаВукуп.Автомобиль ЕСТЬ NULL |
|||
3
Студиозус
28.11.13
✎
10:46
|
(2) Всё равно выбирает и те что есть во вложенном запросе.
|
|||
4
Aprobator
28.11.13
✎
10:48
|
Если нет в таблице остатков, это еще не значит, что нет ссылок в регистре вообще.
|
|||
5
butterbean
28.11.13
✎
10:49
|
(4) у него обороты за весь период
|
|||
6
Студиозус
28.11.13
✎
10:49
|
(4) Там этот авто точно есть.
|
|||
7
Студиозус
28.11.13
✎
10:50
|
Я вообще делал через ВЫБРАТЬ РАЗЛИЧНЫЕ напрмую из регистра, но работает медленно.
|
|||
8
butterbean
28.11.13
✎
10:50
|
(3) под вложенным запросом подразумевается ПланНаВукуп??
|
|||
9
Студиозус
28.11.13
✎
10:51
|
(8) Да
|
|||
10
Aprobator
28.11.13
✎
10:51
|
(5) по РегистрНакопления.ЗаказыАвтомобилей.Остатки не скажешь. Хотя это - не вложенный запрос.
|
|||
11
Aprobator
28.11.13
✎
10:52
|
в любом случае юзать тут таблицу оборотов тоже кошерно.
|
|||
12
Aprobator
28.11.13
✎
10:53
|
ВЫБРАТЬ РАЗЛИЧНЫЕ из основной табоицы - самое то.
|
|||
13
Студиозус
28.11.13
✎
10:53
|
Что то и через вложенный запрос работает медленно.
А пакет сделать нельзя. |
|||
14
butterbean
28.11.13
✎
10:53
|
(9) показывай запрос с учетом (2)
|
|||
15
Aprobator
28.11.13
✎
10:55
|
(13) можно - сначала получаешь ссылки с регистра, а потом уже соединяешь со справочником.
|
|||
16
Aprobator
28.11.13
✎
10:56
|
в (11) кошерно = не кошерно. Пропустил.
|
|||
17
Skom
28.11.13
✎
10:56
|
А чем так не катит?
Выбрать Спр.Ссылка ИЗ Справочник Где Спр.Ссылка НЕ В (Выбрать Автомобили ИЗ Регистра) |
|||
18
Skom
28.11.13
✎
10:57
|
(0) тебе в итоге что получить то надо? просто те авто, которых нет в регистрах?
|
|||
19
Skom
28.11.13
✎
10:57
|
*получить-то
|
|||
20
Студиозус
28.11.13
✎
10:58
|
(14)
ВЫБРАТЬ Автомобили.Ссылка КАК Автомобиль, ЗаказыАвтомобилейОстатки.Заказ.Заказчик КАК Контрагент, ПланНаВукуп.Автомобиль КАК Автомобиль1 ИЗ Справочник.Автомобили КАК Автомобили ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыАвтомобилей.Остатки КАК ЗаказыАвтомобилейОстатки ПО (ЗаказыАвтомобилейОстатки.Автомобиль = Автомобили.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПланНаВыкупОбороты.Автомобиль КАК Автомобиль ИЗ РегистрНакопления.ПланНаВыкуп.Обороты КАК ПланНаВыкупОбороты) КАК ПланНаВукуп ПО Автомобили.Ссылка = ПланНаВукуп.Автомобиль И (ПланНаВукуп.Автомобиль ЕСТЬ NULL ) ГДЕ НЕ Автомобили.ПометкаУдаления |
|||
21
Aprobator
28.11.13
✎
10:58
|
(7) хм - ща потестю на чем нить.
|
|||
22
Студиозус
28.11.13
✎
10:59
|
(18) Которых нет в регисте ПланНаВыкуп
|
|||
23
Aprobator
28.11.13
✎
11:00
|
(20) ПланыВыкуп.Автомобиль Есть NULL в последнее где убери, а не в условие соединения.
|
|||
24
Skom
28.11.13
✎
11:01
|
тебе надо выбрать все из
ЗаказыАвтомобилей чего нет в ПланНаВыкуп так? |
|||
25
Студиозус
28.11.13
✎
11:03
|
(23) Точно! Спасибо, заработало.
Но вот поиск по этому списку очень уж медленно идёт. Не пойму причины. |
|||
26
Aprobator
28.11.13
✎
11:04
|
(24) Выбрать автомобили на которые нет ссылок в регистре ПланНаВыкуп.
|
|||
27
Aprobator
28.11.13
✎
11:04
|
(25) сейчас пару тестов сделаю - скажу как шустрее.
|
|||
28
Студиозус
28.11.13
✎
11:05
|
Почему может долго работать поиск по строке в динамическом списке?
|
|||
29
Студиозус
28.11.13
✎
11:05
|
(27) Буду очень благодарен.
|
|||
30
Skom
28.11.13
✎
11:09
|
ВЫБРАТЬ
Автомобили.Ссылка КАК Автомобиль, ЗаказыАвтомобилейОстатки.Заказ.Заказчик КАК Контрагент ИЗ Справочник.Автомобили КАК Автомобили ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыАвтомобилей.Остатки КАК ЗаказыАвтомобилейОстатки ПО (ЗаказыАвтомобилейОстатки.Автомобиль = Автомобили.Ссылка) ГДЕ НЕ Автомобили.ПометкаУдаления И Автомобили.Ссылка НЕ В ( ВЫБРАТЬ РАЗЛИЧНЫЕ ПланНаВыкупОбороты.Автомобиль ИЗ РегистрНакопления.ПланНаВыкуп.Обороты КАК ПланНаВыкупОбороты ) |
|||
31
Skom
28.11.13
✎
11:09
|
чем так не катит?
|
|||
32
Aprobator
28.11.13
✎
11:11
|
(31) прокатить то должно, только вроде условие В помедленне чем соединение.
|
|||
33
Студиозус
28.11.13
✎
11:11
|
(30) Работает медленно. Я так и делал.
|
|||
34
Aswed
28.11.13
✎
11:17
|
(28) ХЗ.
Я такую хрень решал программным добавлением отбора в дин. список. |
|||
35
Skom
28.11.13
✎
11:17
|
А если так
ВЫБРАТЬ Автомобили.Ссылка КАК Автомобиль, ЗаказыАвтомобилейОстатки.Заказ.Заказчик КАК Контрагент ИЗ Справочник.Автомобили КАК Автомобили ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыАвтомобилей.Остатки КАК ЗаказыАвтомобилейОстатки ПО (ЗаказыАвтомобилейОстатки.Автомобиль = Автомобили.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПланНаВыкуп.Обороты КАК ПланНаВыкуп ПО (Автомобили.Ссылка = ПланНаВукуп.Автомобиль) ГДЕ НЕ Автомобили.ПометкаУдаления И ПланНаВыкуп Есть NULL |
|||
36
Skom
28.11.13
✎
11:18
|
сложно замеры скорости делать, если базы нет под рукой с данными.
|
|||
37
Aswed
28.11.13
✎
11:19
|
Кстати никто не в курсе почему медленно может происходить поиск в динамическом списке?
|
|||
38
Skom
28.11.13
✎
11:20
|
(36) ой, что то фигню нарисовал))
|
|||
39
Студиозус
28.11.13
✎
11:20
|
Спасибо. Теперь запрос формируется быстро. А вот поиск до списку все таки работает медленно. Очень медленно. Не понимаю почему.
|
|||
40
Aswed
28.11.13
✎
11:21
|
(36) "ПланНаВыкуп Есть NULL" - автомобиль пропустил)
|
|||
41
Skom
28.11.13
✎
11:21
|
(40) ага. уже увидел
|
|||
42
Skom
28.11.13
✎
11:21
|
(39) после чего быстро заработало?
|
|||
43
Студиозус
28.11.13
✎
11:22
|
(42) Как сделал соединение с результатом вложенного запроса. Когда делал выбрать различные работало раз в 5 медленнее.
|
|||
44
Aprobator
28.11.13
✎
11:24
|
нефига не понял, а чем Выбрать РАЗЛИЧНЫЕ от вложенного запроса отличается?
|
|||
45
Aswed
28.11.13
✎
11:27
|
А кстати да. По идеи то работать должно одинаково.
|
|||
46
Студиозус
28.11.13
✎
11:30
|
Не знаю. Но работает быстрее.
Всем спасибо. |
|||
47
Aprobator
28.11.13
✎
11:33
|
(45) посмотрел отдельно подзапрос. Так ВЫБРАТЬ РАЗЛИЧНЫЕ из основной таблицы, работает гораздо быстрее чем ВЫБРАТЬ из таблицы оборотов. Сейчас попробую целиком ситуацию сэмулировать на регистре Продажи и Справочнике номенклатура.
|
|||
48
Aswed
28.11.13
✎
11:40
|
(47) А вложенный запрос медленнее работает чем выбрать различные?
|
|||
49
Aswed
28.11.13
✎
11:40
|
(48) по идеи то на то и должно выходить.
|
|||
50
Skom
28.11.13
✎
11:42
|
Еще бы посмотреть как у него в базе индексы организованы
|
|||
51
Aswed
28.11.13
✎
11:42
|
(50) вопрос есть ли они))))
|
|||
52
Skom
28.11.13
✎
11:43
|
если базу сами делали, вполне возможно что и нету)
|
|||
53
Aswed
28.11.13
✎
11:43
|
(52) Щас будет спрашивать а что это?:))))
|
|||
54
hhhh
28.11.13
✎
11:49
|
(35) ИЛИ блин, а не И. Что вы сегодня все с утра?
|
|||
55
Aswed
28.11.13
✎
11:51
|
(54) Да что ты с этим ИЛИ, ты лучше расскажи что такое ИНДЕКСЫ
|
|||
56
Aswed
28.11.13
✎
11:51
|
+(55) ???
|
|||
57
Aprobator
28.11.13
✎
11:52
|
(54) какое ИЛИ? Интересуют элементы справочника автомобили помеченные на удаление, на которые нет ссылок в регистре.
|
|||
58
Aprobator
28.11.13
✎
11:53
|
Сделал тест. Тестировались следующие запросы:
|
|||
59
Aprobator
28.11.13
✎
11:55
|
Места распределились так:
1 - ТекстЗапроса1; 2 - ТекстЗапроса4; 3 - ТекстЗапроса3; 4 - ТекстЗапроса2; |
|||
60
Aprobator
28.11.13
✎
11:56
|
Причем когда в Запросе3 попытался использовать индексы - он стал еще медленнее.
|
|||
61
Aswed
28.11.13
✎
11:57
|
(59) Большая разница между 1 и 2 местами?
|
|||
62
Aprobator
28.11.13
✎
11:58
|
(61) 0,04. Делал по 10 замеров.
|
|||
63
Aswed
28.11.13
✎
11:59
|
(62) В общем выбрать различные всё таки быстрее.
Спасибо, пригодиться в будущем. Тогда вопросы возникают по устройству базы топик стартера. |
|||
64
hhhh
28.11.13
✎
12:00
|
(56) думаю, у автора поле
ЗаказыАвтомобилейОстатки.Заказ.Заказчик КАК Контрагент не проиндексировано. |
|||
65
Aprobator
28.11.13
✎
12:01
|
по времени исполнения:
1 - ТекстЗапроса1 - 0,659373 2 - ТекстЗапроса4 - 0,697253 3 - ТекстЗапроса3 - 0,920075 4 - ТекстЗапроса2 - 1,380547 |
|||
66
Aprobator
28.11.13
✎
12:01
|
(64) и к гадалке не ходи.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |