|
связи таблиц в запросе по первому нахождению условии | ☑ | ||
---|---|---|---|---|
0
Александра1с
21.11.23
✎
09:02
|
Здравствуйте, есть запрос(ниже) он выдает причины отмены,кол-во отмены(из заказа на перем) и кол-во принятое из перемещения в статусе принято, когда отменили двумя строками по 1шт одну номенлктатуру( с двумя разными причинами), а переместили только 1шт получается что колво отменено корректно по группировкам суммирует, а кол-во принято из-за связи проставляется каждой отмененной строке и того в сумме 2 а не 1 https://dropmefiles.com/8zWPq
ВЫБРАТЬ ПеремещениеТоваровТовары.Количество КАК Количество, ПеремещениеТоваровТовары.Номенклатура КАК Номенклатура, ПеремещениеТоваровТовары.Ссылка.ЗаказНаПеремещение КАК ЗаказНаПеремещение ПОМЕСТИТЬ ВТПринято ИЗ Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары ГДЕ ПеремещениеТоваровТовары.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыПеремещенийТоваров.Принято) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗаказыНаПеремещение.Номенклатура КАК Номенклатура, ЗаказыНаПеремещение.h_ПричинаОтмены КАК h_ПричинаОтмены, ЗаказыНаПеремещение.Заказано КАК Заказано, ЗаказыНаПеремещение.ЗаказНаПеремещение.Дата КАК ДатаДокумента, ЗаказыНаПеремещение.ЗаказНаПеремещение КАК Заказ, ЗаказыНаПеремещение.ЗаказНаПеремещение.СкладОтправитель КАК ЗаказНаПеремещениеСкладОтправитель, ЗаказыНаПеремещение.ЗаказНаПеремещение.СкладПолучатель КАК ЗаказНаПеремещениеСкладПолучатель, ВТПринято.Количество КАК Принято ИЗ РегистрНакопления.ЗаказыНаПеремещение КАК ЗаказыНаПеремещение левое СОЕДИНЕНИЕ ВТПринято КАК ВТПринято ПО ЗаказыНаПеремещение.Номенклатура = ВТПринято.Номенклатура И ЗаказыНаПеремещение.Регистратор = ВТПринято.ЗаказНаПеремещение ГДЕ ЗаказыНаПеремещение.ЗаказНаПеремещение.Проведен = ИСТИНА И ЗаказыНаПеремещение.h_ПричинаОтмены <> ЗНАЧЕНИЕ(Справочник.h_ПричиныОтменыЗаказовНаПеремещение.ПустаяСсылка) И ЗаказыНаПеремещение.ЗаказНаПеремещение.Дата МЕЖДУ &НачалоПериода И &КонецПериода И ЗаказыНаПеремещение.Заказано < 0 СГРУППИРОВАТЬ ПО ЗаказыНаПеремещение.Номенклатура, ЗаказыНаПеремещение.h_ПричинаОтмены, ЗаказыНаПеремещение.Заказано, ЗаказыНаПеремещение.ЗаказНаПеремещение.Дата, ЗаказыНаПеремещение.ЗаказНаПеремещение, ЗаказыНаПеремещение.ЗаказНаПеремещение.СкладОтправитель, ЗаказыНаПеремещение.ЗаказНаПеремещение.СкладПолучатель, ВТПринято.Количество |
|||
1
Александра1с
21.11.23
✎
09:03
|
хочу наверное чтобы принятое кол-во связывалось только с первой строкой, с первым нахождение по условию связи
|
|||
2
Fedor-1971
21.11.23
✎
09:07
|
(0) сделай гарантированно одну строку
левое СОЕДИНЕНИЕ ( Выбрать Сумма(таб.Количество) КАК Количество, таб.Номенклатура КАК Номенклатура, таб.ЗаказНаПеремещение КАК ЗаказНаПеремещение из ВТПринято как таб сгруппировать по таб.Номенклатура, таб.ЗаказНаПеремещение ) КАК ВТПринято ПО ЗаказыНаПеремещение.Номенклатура = Принято.Номенклатура И ЗаказыНаПеремещение.Регистратор = ВТПринято.ЗаказНаПеремещение |
|||
3
Fedor-1971
21.11.23
✎
09:14
|
2+ Это идея, возможно, придётся выбрать в отдельную временную таблицу возвраты и свернуть из по количеству
Если очень хочется именно к первой строке - то надо включать Период и регистратор в выборку, находить Номенклатура, Максимум(Период) и присоединять к этому регистратор Короче, гемор в полный рост, профиль, фас и анфас - просто сверни выборки по Номенклатуре и Заказу, бонусом будет счастье |
|||
4
Александра1с
21.11.23
✎
09:16
|
у меня из вт приходит одна всё норм, просто в выборке данных под одно условия подходят эти две строки, через связь отличия не сделать, может можно проставить чтобы связь ставилась для одной строки а для второй не проставлялось
|
|||
5
Александра1с
21.11.23
✎
09:17
|
вроде поняла, но бред полный с начала сделаю связь для только одной строки , потом присобачу причины и добавлю ещё одну строку...
|
|||
6
Fedor-1971
21.11.23
✎
09:25
|
(4) Тогда делай через Объединить ВСЕ
ВЫБРАТЬ ЗаказыНаПеремещение.Номенклатура КАК Номенклатура, ЗаказыНаПеремещение.h_ПричинаОтмены КАК h_ПричинаОтмены, ЗаказыНаПеремещение.Заказано КАК Заказано, ЗаказыНаПеремещение.ЗаказНаПеремещение.Дата КАК ДатаДокумента, ЗаказыНаПеремещение.ЗаказНаПеремещение КАК Заказ, ЗаказыНаПеремещение.ЗаказНаПеремещение.СкладОтправитель КАК ЗаказНаПеремещениеСкладОтправитель, ЗаказыНаПеремещение.ЗаказНаПеремещение.СкладПолучатель КАК ЗаказНаПеремещениеСкладПолучатель, левое СОЕДИНЕНИЕ ВТПринято КАК ВТПринято ПО ЗаказыНаПеремещение.Номенклатура = ВТПринято.Номенклатура И ЗаказыНаПеремещение.Регистратор = ВТПринято.ЗаказНаПеремещение КАК Принято ИЗ РегистрНакопления.ЗаказыНаПеремещение КАК ЗаказыНаПеремещение ГДЕ ЗаказыНаПеремещение.ЗаказНаПеремещение.Проведен = ИСТИНА И ЗаказыНаПеремещение.h_ПричинаОтмены <> ЗНАЧЕНИЕ(Справочник.h_ПричиныОтменыЗаказовНаПеремещение.ПустаяСсылка) И ЗаказыНаПеремещение.ЗаказНаПеремещение.Дата МЕЖДУ &НачалоПериода И &КонецПериода И ЗаказыНаПеремещение.Заказано < 0 Объединить ВСЕ Выбрать таб.Номенклатура КАК Номенклатура, Неопределено как h_ПричинаОтмены // или пустую ссылку забацай .... соотнеси правильно количество полей таб.ЗаказНаПеремещение КАК Заказ .... Сумма(таб.Количество) КАК Принято, из ВТПринято как таб сгруппировать по таб.Номенклатура, таб.ЗаказНаПеремещение ) КАК ВТПринято |
|||
7
Fedor-1971
21.11.23
✎
09:26
|
(5) ничего не выйдет, причины отказа могут быть разные
|
|||
8
Fedor-1971
21.11.23
✎
09:27
|
(6) облажался
левое СОЕДИНЕНИЕ ВТПринято КАК ВТПринято ПО ЗаказыНаПеремещение.Номенклатура = ВТПринято.Номенклатура И ЗаказыНаПеремещение.Регистратор = ВТПринято.ЗаказНаПеремещение КАК Принято надо: 0 как Принято |
|||
9
Fedor-1971
21.11.23
✎
09:28
|
6+ Вот это
Неопределено как h_ПричинаОтмены можно сделать "Получено" как h_ПричинаОтмены |
|||
10
Александра1с
21.11.23
✎
09:36
|
(9) спасибо буду вникать
|
|||
11
Fedor-1971
21.11.23
✎
09:41
|
абы на здоровье
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |