Как соединить две таблицы без дублей? #640228


#0 by v_clim
Есть две таблицы таблица 1  (регистрнакопления ПродажиОбороты) Контрагент Номенклатура СуммаТ   Клиент1     товар1      100 Клиент1     товар2      50 Клиент1     товар3      30 Клиент1     товар4      20 таблица 2  (регистрнакопления ТоварыПереданныеОстатки) Контрагент Оборудование СуммаО   Клиент1    Стойка       700 Необходимо получить следующее соединение (группируем по контрагенту) Контрагент Номенклатура СуммаТ  Оборудование СуммаО   Клиент1     товар1      100       Стойка       700 Клиент1     товар2      50        NULL         0 Клиент1     товар3      30      NULL           0 Клиент1     товар4      20        NULL         0 Но при левом соединении получаем дубли Контрагент Номенклатура СуммаТ  Оборудование СуммаО   Клиент1     товар1      100       Стойка       700 Клиент1     товар2      50        Стойка       700 Клиент1     товар3      30      Стойка       700 Клиент1     товар4      20        Стойка       700 Как избавиться от этих дблей?
#1 by Undefined vs NULL
вопрос такой, а почему к 1 товару, а не к второму?
#2 by cViper
Какой смысл в колонке товар?
#3 by v_clim
Смысл этого всего в одном отчете показать продажи клиентов которые взяли оборудование в аренду. и какие товары они выбирают
#4 by cViper
Так тебе надо показать все содержимое колонки с товаром а не одну позицию.
#5 by Undefined vs NULL
чем второй вариант Клиент1     товар1      100       Стойка       700 Клиент1     товар2      50        Стойка       700 Клиент1     товар3      30      Стойка       700 Клиент1     товар4      20        Стойка       700 не устроил то?
#6 by cViper
должны ли у тебя итоги по СУММАТ считаться и как?
#7 by zak555
он должен быть такой Клиент1     товар1      100 Клиент1     товар2      50 Клиент1     товар3      30 Клиент1     товар4      20 Клиент1                         Стойка       700
#8 by cViper
Если прав, то оставляй так Клиент1     товар1      100       Стойка       700 Клиент1     товар2      50        Стойка       700 Клиент1     товар3      30      Стойка       700 Клиент1     товар4      20        Стойка       700 и добавь сюда иерархическую запись. Потом при выводе не нужные поля не выводи.
#9 by wertyu
объединить
#10 by v_clim
В этом варианте Клиент1     товар1      100       Стойка       700 Клиент1     товар2      50        Стойка       700 Клиент1     товар3      30      Стойка       700 Клиент1     товар4      20        Стойка       700 Он суммирует стойку и в итоге по Стойке выдаст 2800, а должен 700
#11 by zak555
покажи свой код запроса
#12 by v_clim
Вариант вроде нормальный буду пробовать. Это все на СКД надо будет сделать
#13 by v_clim
ВЫБРАТЬ ПО    ОБЩИЕ
#14 by zak555
выбрать р1.контрагент как клиент, р1.Номенклатура как товар, р1.Сумма как СуммаТ, null, 0 из РегистрНакопления.Продажи.Обороты как р1 объеденить всё выбрать р2.контрагент как клиент, NULL, 0, р2.Номенклатура как Оборудование , р2.Сумма как СуммаО   из егистрНакопления.ТоварыПереданные.Остатки как р2
#15 by Птица
не получится. строки не сложатся как надо.
#16 by zak555
???
#17 by Птица
здесь нужен счетчик строк. Если бы он был у каждой из таблиц, можно было бы добавить его в левое соединение, и все соединилось бы как надо. а счетчик строк получается, например, соединением таблицы с самой собой: А.Клиент ИЗ (ВЫБРАТЬ 1 КАК НомерСтроки, А1.Клиент КАК Клиент, А1.Номенклатура КАК Номенклатура, А2.Номенклатура КАК Номенклатура2 ИЗ А КАК А1 ЛЕВОЕ СОЕДИНЕНИЕ А КАК А2 А.КЛИЕНТ, А.Номенклатура как-то так. хотя, возможно появятся тормоза.
#18 by Птица
нужно, чтобы в одной сстроке появились товар и оборудование. через этого не произойдет - сначала будет строка с товаром, а потом - строка с оборудованием
#19 by Птица
+хотя, возможно, операция сравнения на больше -меньше к ссылочному типу не применяется.  тогда нужно что -то другое, примитивного типа и уникальное. возможно, код.
#20 by zak555
видел ?
#21 by AlexITGround
только в 9 чувак сказал очевидную вещь
#22 by v_clim
Сделал объединение пойдет. Всем спасибо! :-)
#23 by zak555
что ты сделал ?
#24 by v_clim
Просто объединил и сгруппировал по контрагенту. Все сделал в СКД. Закрыл глаза на то, что номенклатура и оборудование не в одной строке выводятся.
#25 by zak555
код покажи
#26 by v_clim
ВЫБРАТЬ ИЗ    РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С