|
Как запросом выбрать документы, чья товарная часть включает массив значений? | ☑ | ||
---|---|---|---|---|
0
zakidonoff
23.07.14
✎
13:00
|
К примеру, выбрать только те отчёты, где в товарной части присутствуют все позиции номенклатуры, указанные в массиве?
|
|||
1
Рэйв
23.07.14
✎
13:02
|
...
ГДЕ ТЧ.Номенклатура В(&пиок) |
|||
2
Рэйв
23.07.14
✎
13:02
|
список:-)
|
|||
3
zakidonoff
23.07.14
✎
13:03
|
(1) Это даст ссылки на доки, где хоть одна из позиций присутствует в списке. А нужно непременно все из них. (
|
|||
4
Wobland
23.07.14
✎
13:03
|
(1) тогда уж ГДЕ ВЕСЬ &Список В (ТЧ.Номенклатура)
|
|||
5
samozvanec
23.07.14
✎
13:06
|
выбираешь номенклатуру по массиву, соединяешь с тч товары, потом группируешь, чтобы получить ссылки, рядом с которыми нул, потом ищешь как в (1), но еще И НЕ Ссылка в той самой таблице, которую сгруппировал, где еще нулл
|
|||
6
mikecool
23.07.14
✎
13:07
|
список в ТЗ
тз - во времянку запроса внутреннее соединение с тч документов даст полное соответствие, имхо, но проверить надо |
|||
7
Рэйв
23.07.14
✎
13:07
|
(3)А... вона че:-)
|
|||
8
1Сергей
23.07.14
✎
13:13
|
я бы считал количество строк
|
|||
9
1Сергей
23.07.14
✎
13:13
|
(8) + но, это не надежно если товары могут повторяться
|
|||
10
mikecool
23.07.14
✎
13:16
|
автор, проверь (6) , а то мне лениво )
|
|||
11
zakidonoff
23.07.14
✎
13:21
|
(10) Уже проверял. Выбирает, опять же все документы, где хоть одно поле соответствует.
Вот насчёт выборки и последующей фильтрации нулевых значений с полным соединением, как (5) - это должно сработать... Только вот выполняться такой запрос будет дольше, чем я их вручную найду ( |
|||
12
mikecool
23.07.14
✎
13:23
|
"Выбирает, опять же все документы, где хоть одно поле соответствует" - точно внутреннее соединение между ТЧ документа и таблицей номенклатуры??
|
|||
13
1Сергей
23.07.14
✎
13:24
|
(12) да, не взлетит так. не мучай его
|
|||
14
Рэйв
23.07.14
✎
13:36
|
Как вариант:
1.Залить список в ТЗ, тз поместить в вт в запросе. 2.Соединить левым соединением таб части доков с вт, выбрав первым полем .ссылка, а вторым выбор если вт.Номенклатура NULL , то 0, иначе 1 3. сгруппировать по ссылке суммируя выбор. 4. поставить условие Где суммируемый выбор = размеру списка.Т.е. весь список участвует в таб части самому писать лень, но должно сработать вроде:-) |
|||
15
zakidonoff
23.07.14
✎
13:39
|
(12) Например, как-то так - не работает.
ВЫБРАТЬ ТоварыЗаказа.Номенклатура ПОМЕСТИТЬ ТоварыЗаказа ИЗ &ТоварыЗаказа КАК ТоварыЗаказа ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЧекККМТовары.Ссылка ИЗ Документ.ЧекККМ.Товары КАК ЧекККМТовары ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТоварыЗаказа КАК ТоварыЗаказа ПО ЧекККМТовары.Номенклатура = ТоварыЗаказа.Номенклатура ГДЕ ЧекККМТовары.Ссылка.Организация = &Организация И ЧекККМТовары.Ссылка.Склад = &Склад СГРУППИРОВАТЬ ПО ЧекККМТовары.Ссылка |
|||
16
zakidonoff
23.07.14
✎
14:00
|
(14) Так взлетело, спасибо -)
ВЫБРАТЬ ТоварыЗаказа.Номенклатура ПОМЕСТИТЬ ТоварыЗаказа ИЗ &ТоварыЗаказа КАК ТоварыЗаказа ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Ссылка ИЗ (ВЫБРАТЬ ЧекККМТовары.Ссылка КАК Ссылка, СУММА(ВЫБОР КОГДА ЕСТЬNULL(ЧекККМТовары.Ссылка, 0) = 0 ТОГДА 0 ИНАЧЕ 1 КОНЕЦ) КАК Совпадение, СУММА(1) КАК ВсегоПолей ИЗ ТоварыЗаказа КАК ТоварыЗаказа ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ.Товары КАК ЧекККМТовары ПО (ЧекККМТовары.Номенклатура = ТоварыЗаказа.Номенклатура) ГДЕ ЧекККМТовары.Ссылка.Организация = &Организация И ЧекККМТовары.Ссылка.Склад = &Склад СГРУППИРОВАТЬ ПО ЧекККМТовары.Ссылка) КАК ВложенныйЗапрос ГДЕ ВложенныйЗапрос.Совпадение = ВложенныйЗапрос.ВсегоПолей |
|||
17
mikecool
23.07.14
✎
14:16
|
получилось так :
выбрать &Ном1 как Ном поместить вт_Ном объединить все выбрать &ном2 ; выбрать количество(Ном) как Кол поместить вт_Кол из вт_Ном ; выбрать р.Ссылка, р.Номенклатура, выбор когда н.Ном есть null тогда 0 иначе 1 конец как счетчик поместить вт_реал из документ.реализациятоваровуслуг.товары как р левое соединение вт_ном как н по р.Номенклатура = н.Ном ; выбрать р.Ссылка из вт_реал как р, вт_Кол как н сгруппировать по р.Ссылка, н.Кол имеющие Сумма(р.Счетчик) = н.Кол первая таблица - это список поиска |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |