|
Запрос к табличной части справочника. | ☑ | ||
---|---|---|---|---|
0
НеПалец
07.01.14
✎
23:18
|
Нужно отобрать только те элементы справочника, в табличной части которых содержится несколько строк, удовлетворяющих условию.
Этот запрос дает пусто. При этом если условие оставить одно - выборка есть. ЗапросПравила = Новый Запрос("ВЫБРАТЬ | ПравилаНаборОпцийУсловия.Ссылка |ИЗ | Справочник.Правила.НаборОпцийУсловия КАК ПравилаНаборОпцийУсловия |ГДЕ | ПравилаНаборОпцийУсловия.ОпцияУсловия = &ОпцияУсловия1 | И ПравилаНаборОпцийУсловия.ОпцияУсловия = &ОпцияУсловия2"); Спасибо. |
|||
1
Нууф-Нууф
07.01.14
✎
23:27
|
Или
|
|||
2
НеПалец
07.01.14
✎
23:32
|
(1)
В этом случае выборка содержит элементы, в которых встречается Условие1 ИЛИ Условие2. А нужно Условие1 И Условие2. Если нет хотя бы одного значения условия в ТЧ - элемент в выборку не выводим. |
|||
3
Homer
07.01.14
✎
23:33
|
сделай соединение
|
|||
4
НеПалец
07.01.14
✎
23:35
|
(3)
не понимаю, чего с чем. |
|||
5
Elf_80_lvl
07.01.14
✎
23:38
|
Выбрать по условию и сгруппировать по ссылке, вывести только те где больше чем 1
|
|||
6
НеПалец
07.01.14
✎
23:42
|
(5)
Это через "ОБЪЕДИНИТЬ"? |
|||
7
Elf_80_lvl
07.01.14
✎
23:49
|
Я не понимаю в чем твоя печаль? В том что сразу два условия не работают или в том, что не знаешь, как вывести только тот справочник, у которого сразу несколько строк подходят под условия?
|
|||
8
НеПалец
07.01.14
✎
23:56
|
Нужно вывести только те элементы, табличные части которых содержат ВСЕ значения, перечисленные в условиях.
|
|||
9
Torquader
08.01.14
✎
00:00
|
Сначала выбираем все, у кого выполняется первое условие (указывая единицу в новом поле), потом выбираем все, у кого выполняется второе условие, (добавляя двойку в новом поле).
Выборка делается во временную таблицу - потом делаем выборку из неё с группировкой и суммированием по новому полю, ну и отбираем все значения, у которых новое поле равно трём - легко обобщается на произвольное число условий. |
|||
10
Torquader
08.01.14
✎
00:01
|
Не забываем только при первой выборке также делать группировку по ссылке, чтобы не было нескольких одинаковых (у одного элемента, в общем случае, может быть несколько строк, подходящих под условие).
|
|||
11
НеПалец
08.01.14
✎
00:07
|
(10)
Видимо, садо-мазо - наше все. |
|||
12
Torquader
08.01.14
✎
00:08
|
(11) Ну можно и внутренним соединением таблицы сама с собой, но скорость работы будет хуже, чем в (9).
|
|||
13
НеПалец
08.01.14
✎
00:15
|
Ок. Спасибо.
|
|||
14
Fram
08.01.14
✎
02:54
|
(12) в (5) получше вариант
|
|||
15
Fram
08.01.14
✎
02:56
|
(0) а у вас, батенька, судя по вопросу, отсутствует понимание таблиц и запросов SQL
|
|||
16
mistеr
08.01.14
✎
04:25
|
(12) Не соглашусь, что "хуже". Если реквизит поиска индексирован, то внутреннее соединение - оптимальный способ.
Кстати, (9) тоже можно упростить. Выбираем из ТЧ один раз по условию ИЛИ. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |