|
Запрос - найти такой же набор значений в табличной части | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
04.09.20
✎
10:06
|
Наверняка распространенная задача
год назад сделал для небольшого участка, сейчас встала задача прикрутить это к большому объему данных не устраивает скорость выполнения алгоритма. киньте примером надо запросом найти такой же набор значений в табличной части как в переданной ТЗ. |
|||
1
dka80
04.09.20
✎
10:15
|
ВЫБРАТЬ
1 КАК Поле1 ПОМЕСТИТЬ ВТ1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 1 КАК Поле1 ПОМЕСТИТЬ ВТ2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КОЛИЧЕСТВО(ВТ1.Поле1) КАК Поле1, КОЛИЧЕСТВО(ВТ2.Поле1) КАК Поле11 ПОМЕСТИТЬ ВТ3 ИЗ ВТ1 КАК ВТ1 ПОЛНОЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2 ПО ВТ1.Поле1 = ВТ2.Поле1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ3.Поле1 КАК Поле1, ВТ3.Поле11 КАК Поле11 ИЗ ВТ3 КАК ВТ3 ГДЕ ВТ3.Поле1 = ВТ3.Поле11 |
|||
2
dka80
04.09.20
✎
10:32
|
Можно попробывать индексы добавить, временные таблицы заменить на вложенный запрос
|
|||
3
Ёпрст
04.09.20
✎
10:37
|
(0) Тебе аналог ALL нужен что ле в 1с ?
|
|||
4
RomaH
naïve
04.09.20
✎
10:41
|
(3) чаво? что за ALL?
|
|||
5
RomaH
naïve
04.09.20
✎
10:45
|
(3) вроде нет
на пальцах есть док продажи в нем таблица товаров - Номенклатура и количество надо найти документы с таким же набором в ТЧ как в исходном. |
|||
6
RomaH
naïve
04.09.20
✎
10:46
|
вот что сейчас:
Запрос.Текст = "ВЫБРАТЬ | ТаблицаБригады.Основной КАК Основной, | ТаблицаБригады.Специалист КАК Специалист, | ТаблицаБригады.Роль КАК Роль |ПОМЕСТИТЬ втТаблицаБригадыСПустыми |ИЗ | &ТаблицаБригады КАК ТаблицаБригады |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | втТаблицаБригады.Основной КАК Основной, | втТаблицаБригады.Специалист КАК Специалист, | втТаблицаБригады.Роль КАК Роль |ПОМЕСТИТЬ втТаблицаБригады |ИЗ | втТаблицаБригадыСПустыми КАК втТаблицаБригады |ГДЕ | втТаблицаБригады.Специалист <> ЗНАЧЕНИЕ(Справочник.Специалисты.ПустаяСсылка) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | втТаблицаБригады.Основной КАК Основной, | втТаблицаБригады.Специалист КАК Специалист, | втТаблицаБригады.Роль КАК Роль, | БригадыСпециалисты.Ссылка КАК Ссылка1 |ПОМЕСТИТЬ втУмножение |ИЗ | втТаблицаБригады КАК втТаблицаБригады | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Бригады.Специалисты КАК БригадыСпециалисты | ПО (ИСТИНА) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | ЕСТЬNULL(втУмножение.Ссылка1, БригадыСпециалисты.Ссылка) КАК Ссылка1 |ПОМЕСТИТЬ втИсключаемые |ИЗ | втУмножение КАК втУмножение | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Бригады.Специалисты КАК БригадыСпециалисты | ПО втУмножение.Ссылка1 = БригадыСпециалисты.Ссылка | И втУмножение.Основной = БригадыСпециалисты.Основной | И втУмножение.Специалист = БригадыСпециалисты.Специалист | И втУмножение.Роль = БригадыСпециалисты.Роль |ГДЕ | (БригадыСпециалисты.Ссылка ЕСТЬ NULL | ИЛИ втУмножение.Ссылка1 ЕСТЬ NULL) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Бригады.Ссылка КАК Ссылка |ПОМЕСТИТЬ втБригады |ИЗ | Справочник.Бригады КАК Бригады | ЛЕВОЕ СОЕДИНЕНИЕ втИсключаемые КАК Исключаемые | ПО (Исключаемые.Ссылка1 = Бригады.Ссылка) |ГДЕ | Исключаемые.Ссылка1 ЕСТЬ NULL |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | БригадыСпециалисты.Ссылка КАК Ссылка |ИЗ | втТаблицаБригады КАК втТаблицаБригады | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Бригады.Специалисты КАК БригадыСпециалисты | ВНУТРЕННЕЕ СОЕДИНЕНИЕ втБригады КАК втБригады | ПО БригадыСпециалисты.Ссылка = втБригады.Ссылка | ПО втТаблицаБригады.Основной = БригадыСпециалисты.Основной | И втТаблицаБригады.Специалист = БригадыСпециалисты.Специалист | И втТаблицаБригады.Роль = БригадыСпециалисты.Роль"; на 30 вызовов работает 1 сек |
|||
7
Mikeware
04.09.20
✎
10:50
|
(5) а просто соединить по номенклатуре и количеству, а затем отобрать, где количество строк по ссылке равно количеству строк в шаблоне?
|
|||
8
RomaH
naïve
04.09.20
✎
10:54
|
(7) похоже на правду
|
|||
9
Ёпрст
04.09.20
✎
10:59
|
||||
10
Ёпрст
04.09.20
✎
11:00
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |