|
Выбрать уникальных регистраторов из нескольких регистров | ☑ | ||
---|---|---|---|---|
0
bolero
04.11.14
✎
15:19
|
Есть задача получить список документов, в которых встречается определенная комбинация номенклатуры и характеристики (УТ11).
Чтобы не перебирать в каждом документе табличные части, можно спросить в нескольких регистрах: ВЫБРАТЬ РН1.Регистратор ИЗ РегистрНакопления.ТоварыНаСкладах КАК РН1 ГДЕ РН1.Номенклатура = &Номенклатура И РН1.Характеристика.Ссылка ЕСТЬ NULL ВЫБРАТЬ РН2.Регистратор ИЗ РегистрНакопления.ЗаказыКлиентов КАК РН2 ГДЕ РН2.Номенклатура = &Номенклатура И РН2.Характеристика.Ссылка ЕСТЬ NULL Оба запроса возвращают в составе ответа одни и те же реализации. Как правильно объеденить результаты, чтобы каждый документ встречался только один раз? |
|||
1
Armando
04.11.14
✎
15:24
|
Объединить
|
|||
2
shuhard
04.11.14
✎
15:28
|
(1) +1
и поверх пустить РАЗЛИЧНЫЕ |
|||
3
bolero
04.11.14
✎
15:36
|
(1) (2) не понимаю как объединить, даже на обычном sql, не то что на желтом
LEFT JOIN выдаст несколько колонок |
|||
4
spero
04.11.14
✎
15:42
|
(3) Кроме JOIN есть еще UNION.
|
|||
5
bolero
04.11.14
✎
15:51
|
(4) Вкурил!
ВЫБРАТЬ РАЗЛИЧНЫЕ ВремЗапрос.Регистратор ИЗ (ВЫБРАТЬ РН.Регистратор ИЗ РегистрНакопления.ТоварыНаСкладах КАК РН ГДЕ РН.Номенклатура = &Номенклатура И РН.Характеристика = &Характеристика ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РН.Регистратор ИЗ РегистрНакопления.ЗаказыКлиентов КАК РН ГДЕ РН.Номенклатура = &Номенклатура И РН.Характеристика = &Характеристика ) КАК ВремЗапрос |
|||
6
Armando
04.11.14
✎
17:09
|
можно и без вложенного запроса:
выбрать различные объединить выбрать различные |
|||
7
bolero
04.11.14
✎
17:20
|
(6) не, так не надо
1-й "выбрать различные" возвращает список документов, в т.ч. реализации 2-й "выбрать различные" возвращает другой список документов, но включающий те же реализации из первого запроса так что лучше в конце один раз сделать DISTINCT |
|||
8
vi0
04.11.14
✎
17:23
|
(7) почему лучше?
|
|||
9
shuhard
04.11.14
✎
17:27
|
(7) у Объединить есть предикатив ВСЕ, без него он неявно содержит в себе различные
|
|||
10
Armando
04.11.14
✎
17:30
|
(7) Без замера я бы не стал так утверждать.
|
|||
11
Armando
04.11.14
✎
17:30
|
(10) возразить тоже не могу, ибо не замерял
|
|||
12
bolero
04.11.14
✎
22:16
|
(7) (8) (9) (10) замерил
выбрать различные + объединить все + выбрать различные дает дублирующиеся результаты выбрать различные + объединить + выбрать различные дает правильный результат Приз за знание желтого sql уходит shuhard В итоге запрос выглядит так: "ВЫБРАТЬ РАЗЛИЧНЫЕ | РН.Регистратор | ИЗ | РегистрНакопления.ТоварыНаСкладах КАК РН | ГДЕ | РН.Номенклатура = &Номенклатура | И РН.Характеристика = &Характеристика | | ОБЪЕДИНИТЬ | | ВЫБРАТЬ РАЗЛИЧНЫЕ | РН.Регистратор | ИЗ | РегистрНакопления.ЗаказыКлиентов КАК РН | ГДЕ | РН.Номенклатура = &Номенклатура | И РН.Характеристика = &Характеристика | |"; |
|||
13
vi0
04.11.14
✎
22:51
|
(12)
> выбрать различные + объединить все + выбрать различные дает дублирующиеся результаты а тебе этого никто не советовал > выбрать различные + объединить + выбрать различные дает правильный результат это тебе посоветовали в (6) а под замером подразумевалось оптимальность твоего запроса и того, что в 6 посоветовали |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |