Имя: Пароль:
1C
1С v8
Объединить две таблицы с условием по количеству.
,
0 vadium
 
28.11.18
15:45
Есть две таблицы с колонками "Количество", соединяемые по некоторым ключевым полям, но может возникнуть ситуация, когда в обеих таблицах есть дублирующиеся строки, соответственно соединение даст комбинацию в 4 строки, а нужно сделать так чтобы присоединяемая таблица передала количество, меньшее чем первая.
Пример:
Таблица1
y  K  13
z  R  15
x  A   1
x  B   2

Таблица2
z  H  14
y  M  11
x  C   2
x  D   1

Итогом является результирующая Таблица3
y  KH  13
z  RM  11
                  и 4 комбинации
x  AC  1
x  AD  1
x  BC  2
x  BD  1

Хотелось бы чтобы при объединении по x получилась такая (или похожая) картинка:
x  AC 1
x  BC 1
x  BD 1
Такое реально? Какое-то условие с итогом по ключевым полям?
1 mikecool
 
28.11.18
15:47
Где Количество1 < Количество2
Имеющие Количество1 < Количество2
2 vadium
 
28.11.18
15:56
нет, в каждой строке результирующее количество меньше другого, так что условие как бы и так выполняется.
3 vadium
 
29.11.18
09:01
неужели это невозможно сделать в запросе?
4 exwill
 
29.11.18
09:09
(3) Запросом можно сделать все. Если, конечно, это  T-SQL. 1С-овским запросом можно сделать все, кроме того, что делается запросом в цикле.
Ты пишешь не понятно. Никто не понимает - в чем твоя проблема.
5 rs_trade
 
29.11.18
09:21
выбор когда в селекте, потом группировать?
6 seevkik
 
29.11.18
09:52
Выбор
Когда Таблица1.Количество > Таблица2.Количество
Тогда Таблица2.Количество
Иначе Таблица1.Количество
Конец
или я чего-то не понимаю?)
7 vadium
 
29.11.18
11:01
Наверное я был не прав что не показал что есть.
Запрос (сильно упрощённый) такой:

ВЫБРАТЬ
    РасходнаяТовары.Товар,
    РасходнаяТовары.Серия,
    РасходнаяТовары.ЦенаБезНДС,
    СУММА(РасходнаяТовары.Кво) КАК Кво,
    СУММА(РасходнаяТовары.СуммаСНДС) КАК СуммаСНДС,
    СУММА(Парт.Колво) КАК Колво,
    СУММА(Парт.Сумма) КАК Сумма,
    Парт.Партия
ИЗ
    Документ.Расходная.Товары КАК РасходнаяТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Партия КАК Парт
        ПО РасходнаяТовары.Ссылка = Парт.Регистратор
            И РасходнаяТовары.Серия = Парт.Серия
ГДЕ
    РасходнаяТовары.Ссылка = &Ссылка
    И РасходнаяТовары.Товар = &Товар

СГРУППИРОВАТЬ ПО
    РасходнаяТовары.Товар,
    РасходнаяТовары.Серия,
    РасходнаяТовары.ЦенаБезНДС,
    Парт.Партия

В исходных данных в Расходной:

Товар                    Серия    КвоР    ЦенаБНДС    СуммаСНДС
полыни н-ка 25мл стекло    050918    2,0    6        14,4
полыни н-ка 25мл стекло    050918    1,0    7        8,4

и соответственно Партии:

Товар                    Серия    КвоП    СуммаП    Партия
полыни н-ка 25мл стекло        050918    1,0    5    Приходная накладная ЗЮ-123
полыни н-ка 25мл стекло    050918    2,0    14    Приходная накладная МЮ-321

Итог работы данного запроса:
Товар            Серия    КвоР    КвоП    ЦенаБНДС    СуммаСНДС    СуммаП    Партия
полыни н-ка 25мл стекло    050918    2    1    5,06    10,83    4,8    Приходная накладная ЗЮ-123
полыни н-ка 25мл стекло    050918    2    2    5,06    10,83    9,56    Приходная накладная МЮ-321
полыни н-ка 25мл стекло    050918    1    1    5,23    5,6    4,8    Приходная накладная ЗЮ-123
полыни н-ка 25мл стекло    050918    1    2    5,23    5,6    9,56    Приходная накладная МЮ-321

Объединять по количествам нельзя, в общем случае эти строки независимы и пересекающиеся количества - совпадения.
Итогом должна служить таблица вида:

Товар            Серия    КвоР    КвоП    ЦенаБНДС    СуммаСНДС    СуммаП    Партия
полыни н-ка 25мл стекло    50918    1    1    6    7,2    5    Приходная накладная ЗЮ-123
полыни н-ка 25мл стекло    50918    1    1    6    7,2    7    Приходная накладная МЮ-321
полыни н-ка 25мл стекло    50918    1    1    7    8,4    7    Приходная накладная МЮ-321

Реально ли такого добиться?
8 rs_trade
 
29.11.18
11:34
выбор когда в селекте, потом группировать?
9 Вафель
 
29.11.18
11:37
ты партионный учет в запросе чтоли делаешь?
10 seevkik
 
29.11.18
13:16
Ну и?)

Сумма(Выбор
Когда Парт.Колво > РасходнаяТовары.Количество
  Тогда Парт.Колво
Иначе РасходнаяТовары.Количество
Конец) КАК Колво
11 seevkik
 
29.11.18
13:17
ну или знак в другую сторону
12 rs_trade
 
29.11.18
13:34
(10) до него все никак не дойдет видимо этот вариант
13 Buster007
 
29.11.18
14:13
что-то мне подсказывает, что предложенные варианты решения не подойдут, т.к. ему похоже требуется (9)
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.