Даны 2 таблицы (верхние левая и правая). Написать запрос объединения этих таблиц по Контрагенту и статусу, так, что бы сумма корректировки была связана только с одной строкой левой таблицы, т.е. По контрагенту К1 и статусу продажи должна от корректироваться одна строка. Результирующая таблица внизу.
Прикрепленные файлы:

По теме из базы знаний
Найденные решения
(12)
На вот, занимайся:
На вот, занимайся:
ВЫБРАТЬ
"К1" КАК Контрагент,
"продажа" КАК СтатусДокумента,
100 КАК Сумма
ПОМЕСТИТЬ Табличка1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К1",
"продажа",
30
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К1",
"возврат",
-10
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К1",
"возврат",
-4
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К2",
"продажа",
15
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К2",
"возврат",
-2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К2",
"возврат",
-1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
"К1" КАК Контрагент,
"продажа" КАК СтатусДокумента,
10 КАК Сумма
ПОМЕСТИТЬ Табличка2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К2",
"возврат",
-4
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Табличка1.Контрагент КАК Контрагент,
Табличка1.СтатусДокумента КАК СтатусДокумента,
Табличка1.Сумма КАК Сумма,
АВТОНОМЕРЗАПИСИ() КАК НомерСтроки
ПОМЕСТИТЬ ТабличкаСНомеромСтроки
ИЗ
Табличка1 КАК Табличка1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТабличкаСНомеромСтроки.Контрагент КАК Контрагент,
ТабличкаСНомеромСтроки.СтатусДокумента КАК СтатусДокумента,
МИНИМУМ(ТабличкаСНомеромСтроки.НомерСтроки) КАК НомерСтроки
ПОМЕСТИТЬ ТабличкаСНУжнымиНомерамиСтрок
ИЗ
ТабличкаСНомеромСтроки КАК ТабличкаСНомеромСтроки
СГРУППИРОВАТЬ ПО
ТабличкаСНомеромСтроки.Контрагент,
ТабличкаСНомеромСтроки.СтатусДокумента
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Табличка3.Контрагент КАК Контрагент,
Табличка3.СтатусДокумента КАК СтатусДокумента,
СУММА(Табличка3.СуммаКорректировки) КАК СуммаКорректировки,
ТабличкаСНУжнымиНомерамиСтрок.НомерСтроки КАК НомерСтроки
ПОМЕСТИТЬ Результат
ИЗ
(ВЫБРАТЬ
ТабличкаСНУжнымиНомерамиСтрок.Контрагент КАК Контрагент,
ТабличкаСНУжнымиНомерамиСтрок.СтатусДокумента КАК СтатусДокумента,
0 КАК СуммаКорректировки
ИЗ
ТабличкаСНУжнымиНомерамиСтрок КАК ТабличкаСНУжнымиНомерамиСтрок
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Табличка2.Контрагент,
Табличка2.СтатусДокумента,
Табличка2.Сумма
ИЗ
Табличка2 КАК Табличка2) КАК Табличка3
ЛЕВОЕ СОЕДИНЕНИЕ ТабличкаСНУжнымиНомерамиСтрок КАК ТабличкаСНУжнымиНомерамиСтрок
ПО (ТабличкаСНУжнымиНомерамиСтрок.Контрагент = Табличка3.Контрагент)
И Табличка3.СтатусДокумента = ТабличкаСНУжнымиНомерамиСтрок.СтатусДокумента
СГРУППИРОВАТЬ ПО
Табличка3.Контрагент,
Табличка3.СтатусДокумента,
ТабличкаСНУжнымиНомерамиСтрок.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТабличкаСНомеромСтроки.Контрагент КАК Контрагент,
ТабличкаСНомеромСтроки.СтатусДокумента КАК СтатусДокумента,
ТабличкаСНомеромСтроки.Сумма КАК Сумма,
ЕстьNULL(Результат.СуммаКорректировки,0) КАК СуммаКорректировки
ИЗ
ТабличкаСНомеромСтроки КАК ТабличкаСНомеромСтроки
ЛЕВОЕ СОЕДИНЕНИЕ Результат КАК Результат
ПО (Результат.НомерСтроки = ТабличкаСНомеромСтроки.НомерСтроки)
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(7) если в табличке есть номер строки, то то получить минимум(номерстроки) клиентос статус сгруппировать по клиентос, статус, положить во времянку, к этой табличке объединение как в (5) и потом исходная табличка + левое соедиение к этому по клиентосу, номеру строки и статусу
(8)
Так?
Так?
ВЫБРАТЬ
МИНИМУМ(н/с),
Контрагент,
СтатусОперации,
Сумма
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
ТаблицаРасчетов
СГРУППИРОВАТЬ ПО
Контрагент,
СтатусОперации,
Сумма
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
н/с,
Контрагент,
СтатусОперации,
Сумма
ПОМЕСТИТЬ ВременнаяТаблица1
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаКорректировки
ПО (Контрагент = Контрагент) И
(Статус= СтатусОперации) И
(РеализацияТоваровУслугТовары.НомерСтроки = н/с)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
0,
Контрагент,
Статус,
СуммаКорректирвоки
ИЗ
ТаблицаКорректировки
Показать
(12)
На вот, занимайся:
На вот, занимайся:
ВЫБРАТЬ
"К1" КАК Контрагент,
"продажа" КАК СтатусДокумента,
100 КАК Сумма
ПОМЕСТИТЬ Табличка1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К1",
"продажа",
30
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К1",
"возврат",
-10
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К1",
"возврат",
-4
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К2",
"продажа",
15
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К2",
"возврат",
-2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К2",
"возврат",
-1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
"К1" КАК Контрагент,
"продажа" КАК СтатусДокумента,
10 КАК Сумма
ПОМЕСТИТЬ Табличка2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"К2",
"возврат",
-4
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Табличка1.Контрагент КАК Контрагент,
Табличка1.СтатусДокумента КАК СтатусДокумента,
Табличка1.Сумма КАК Сумма,
АВТОНОМЕРЗАПИСИ() КАК НомерСтроки
ПОМЕСТИТЬ ТабличкаСНомеромСтроки
ИЗ
Табличка1 КАК Табличка1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТабличкаСНомеромСтроки.Контрагент КАК Контрагент,
ТабличкаСНомеромСтроки.СтатусДокумента КАК СтатусДокумента,
МИНИМУМ(ТабличкаСНомеромСтроки.НомерСтроки) КАК НомерСтроки
ПОМЕСТИТЬ ТабличкаСНУжнымиНомерамиСтрок
ИЗ
ТабличкаСНомеромСтроки КАК ТабличкаСНомеромСтроки
СГРУППИРОВАТЬ ПО
ТабличкаСНомеромСтроки.Контрагент,
ТабличкаСНомеромСтроки.СтатусДокумента
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Табличка3.Контрагент КАК Контрагент,
Табличка3.СтатусДокумента КАК СтатусДокумента,
СУММА(Табличка3.СуммаКорректировки) КАК СуммаКорректировки,
ТабличкаСНУжнымиНомерамиСтрок.НомерСтроки КАК НомерСтроки
ПОМЕСТИТЬ Результат
ИЗ
(ВЫБРАТЬ
ТабличкаСНУжнымиНомерамиСтрок.Контрагент КАК Контрагент,
ТабличкаСНУжнымиНомерамиСтрок.СтатусДокумента КАК СтатусДокумента,
0 КАК СуммаКорректировки
ИЗ
ТабличкаСНУжнымиНомерамиСтрок КАК ТабличкаСНУжнымиНомерамиСтрок
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Табличка2.Контрагент,
Табличка2.СтатусДокумента,
Табличка2.Сумма
ИЗ
Табличка2 КАК Табличка2) КАК Табличка3
ЛЕВОЕ СОЕДИНЕНИЕ ТабличкаСНУжнымиНомерамиСтрок КАК ТабличкаСНУжнымиНомерамиСтрок
ПО (ТабличкаСНУжнымиНомерамиСтрок.Контрагент = Табличка3.Контрагент)
И Табличка3.СтатусДокумента = ТабличкаСНУжнымиНомерамиСтрок.СтатусДокумента
СГРУППИРОВАТЬ ПО
Табличка3.Контрагент,
Табличка3.СтатусДокумента,
ТабличкаСНУжнымиНомерамиСтрок.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТабличкаСНомеромСтроки.Контрагент КАК Контрагент,
ТабличкаСНомеромСтроки.СтатусДокумента КАК СтатусДокумента,
ТабличкаСНомеромСтроки.Сумма КАК Сумма,
ЕстьNULL(Результат.СуммаКорректировки,0) КАК СуммаКорректировки
ИЗ
ТабличкаСНомеромСтроки КАК ТабличкаСНомеромСтроки
ЛЕВОЕ СОЕДИНЕНИЕ Результат КАК Результат
ПО (Результат.НомерСтроки = ТабличкаСНомеромСтроки.НомерСтроки)
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот