|
Соединения в запросе | ☑ | ||
---|---|---|---|---|
0
trialex3
13.12.22
✎
17:53
|
Добрый день. Прошу прощения заранее за очень нубский вопрос, но почему после соединения регистра продаж с документом заказы покупателей получаются разные результаты, если используется левое соединение?
К примеру 2 запроса ниже дают разные результаты 1. ВЫБРАТЬ СУММА(Продажи.Количество) КАК Количество ИЗ РегистрНакопления.Продажи КАК Продажи ГДЕ Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон И Продажи.Номенклатура.Родитель = &ГотоваяПродукция 2. ВЫБРАТЬ СУММА(Продажи.Количество) КАК Количество ИЗ РегистрНакопления.Продажи КАК Продажи ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ПО Продажи.ЗаказПокупателя = ЗаказПокупателяТовары.Ссылка И Продажи.Номенклатура = ЗаказПокупателяТовары.Номенклатура И Продажи.ХарактеристикаНоменклатуры = ЗаказПокупателяТовары.ХарактеристикаНоменклатуры ГДЕ Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон И Продажи.Номенклатура.Родитель = &ГотоваяПродукция |
|||
1
trialex3
13.12.22
✎
17:55
|
Я всегда думал, что если левое соединение, то изначальная таблица НЕ меняется и к ней просто добавляются данные из правой. То есть не происходит дублирования строк. получается что если в заказах повторяется строка, то в финальном результате тоже будет задвоение?
|
|||
2
trialex3
13.12.22
✎
17:56
|
В таком случае вопрос - как избежать задвоения? сделать 2 виртуальных таблицы, где сгруппировать записи и потом уже соединить их?
|
|||
3
trialex3
13.12.22
✎
17:57
|
В конечном итоге нужно получить просто все записи из регистра но с дополнительной инфой из документа
|
|||
4
hockeyist
13.12.22
✎
18:03
|
(0) Соединение это когда к первой таблице ищутся ВСЕ возможные пары, в соответствии с условием соединения. Если условие не задать, тогда будет умножение таблиц
|
|||
5
hockeyist
13.12.22
✎
18:05
|
(3) Чему должна соответствовать эта информация?
|
|||
6
trialex3
13.12.22
✎
18:18
|
(5) Продажам. Мне нужны все продажи за период, но к этому запросу я хотел добавить инфу по товару. Скидку, например, или цену. Проблема в том, что после соединения общее количество из регистра увеличивается за счет дублирования строк.
|
|||
7
trialex3
13.12.22
✎
18:19
|
(5) А. Если вы про условие то документСсылка, номенклатура и характеристика
|
|||
8
Said_We
13.12.22
✎
18:35
|
(7) У вас несколько строк в соединяемой таблице отвечает условию. Поэтому и дубляжи. В (4) даны уже все ответы. Смотрите данные.
|
|||
9
hockeyist
13.12.22
✎
18:38
|
(6) Ну и... продолжайте. В том случае, когда будет дубль, надо взять... что?
|
|||
10
trialex3
13.12.22
✎
18:39
|
(9) По логике если это дубль то без разницы. Это же дубль, одинаковая инфа...
|
|||
11
hockeyist
13.12.22
✎
18:42
|
(10) Тогда МАКСИМУМ() или МИНИМУМ() на выбор
|
|||
12
hockeyist
13.12.22
✎
18:43
|
(10) Или РАЗЛИЧНЫЕ, как вариант
|
|||
13
rudnitskij
13.12.22
✎
21:51
|
(6) странная постановка задачи. Сумма выводится итоговая - а скидка и цена в каждом заказе могут быть разными.
Если нужна обязательно "информация по товару" - надо делать запрос к таблице, где товары содержатся и из них и брать информацию. А "скидка, цена" - это информация не по товару, а по заказу, можете вообще тут запросом к табчасти ТОВАРЫ обойтись |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |