|
Группировка итогового пакета запроса | ☑ | ||
---|---|---|---|---|
0
Tolstiy Beremenniy
24.12.18
✎
03:54
|
Подскажите пожалуйста по построению итогового пакета запроса.
Дело в том что как задаю итоги, то в консоле запросов идет замноживание выводимых данных. Без итогов же все выводится в более наглядном и понятном виде. Суть задачи выбрать партии для партионного списания, первая из которых партия из табличной части документа если указанна. ВЫБРАТЬ ПеремещениеТоваровСписокНоменклатуры.Номенклатура, СУММА(ПеремещениеТоваровСписокНоменклатуры.Количество) КАК Количество, ПеремещениеТоваровСписокНоменклатуры.Партия ПОМЕСТИТЬ ВТ_ДокТч ИЗ Документ.ПеремещениеТоваров.СписокНоменклатуры КАК ПеремещениеТоваровСписокНоменклатуры ГДЕ ПеремещениеТоваровСписокНоменклатуры.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО ПеремещениеТоваровСписокНоменклатуры.Номенклатура, ПеремещениеТоваровСписокНоменклатуры.Партия ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПродуктыНаСкладахОстатки.Номенклатура, ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, ПродуктыНаСкладахОстатки.Партия ПОМЕСТИТЬ ВТ_ОстаткиПартий ИЗ РегистрНакопления.ПродуктыНаСкладах.Остатки( &Момент, Номенклатура В (ВЫБРАТЬ ВТ_ДокТч.Номенклатура ИЗ ВТ_ДокТч КАК ВТ_ДокТч)) КАК ПродуктыНаСкладахОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ДокТч.Номенклатура КАК НоменклатураИзДокумента, СУММА(ВТ_ДокТч.Количество) КАК КоличествоИзДокумента, ВТ_ДокТч.Партия КАК ПартияИзДокумента, ВТ_ОстаткиПартий.Номенклатура КАК НоменклатураОстатков, СУММА(ВТ_ОстаткиПартий.КоличествоОстаток) КАК КоличествоОстаток, ВТ_ОстаткиПартий.Партия КАК ПартияОстатков, ВЫБОР КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия ТОГДА 1 ИНАЧЕ 2 КОНЕЦ КАК ПорядокСписания, ВТ_ОстаткиПартий.Партия.МоментВремени КАК ПартияМоментВремени ИЗ ВТ_ДокТч КАК ВТ_ДокТч ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура СГРУППИРОВАТЬ ПО ВТ_ДокТч.Номенклатура, ВТ_ДокТч.Партия, ВТ_ОстаткиПартий.Номенклатура, ВТ_ОстаткиПартий.Партия, ВЫБОР КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия ТОГДА 1 ИНАЧЕ 2 КОНЕЦ, ВТ_ОстаткиПартий.Партия.МоментВремени УПОРЯДОЧИТЬ ПО ВТ_ДокТч.Номенклатура.Наименование, ПорядокСписания, ПартияМоментВремени ИТОГИ СУММА(КоличествоИзДокумента), СУММА(КоличествоОстаток) ПО НоменклатураИзДокумента, ПартияИзДокумента, НоменклатураОстатков, ПартияОстатков, ПорядокСписания, ПартияМоментВремени |
|||
1
Tolstiy Beremenniy
24.12.18
✎
04:05
|
И почему задваиваются записи в запросе?
ВЫБРАТЬ ПеремещениеТоваровСписокНоменклатуры.Номенклатура, СУММА(ПеремещениеТоваровСписокНоменклатуры.Количество) КАК Количество, ПеремещениеТоваровСписокНоменклатуры.Партия ПОМЕСТИТЬ ВТ_ДокТч ИЗ Документ.ПеремещениеТоваров.СписокНоменклатуры КАК ПеремещениеТоваровСписокНоменклатуры ГДЕ ПеремещениеТоваровСписокНоменклатуры.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО ПеремещениеТоваровСписокНоменклатуры.Номенклатура, ПеремещениеТоваровСписокНоменклатуры.Партия ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПродуктыНаСкладахОстатки.Номенклатура, ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, ПродуктыНаСкладахОстатки.Партия ПОМЕСТИТЬ ВТ_ОстаткиПартий ИЗ РегистрНакопления.ПродуктыНаСкладах.Остатки( &Момент, Номенклатура В (ВЫБРАТЬ ВТ_ДокТч.Номенклатура ИЗ ВТ_ДокТч КАК ВТ_ДокТч)) КАК ПродуктыНаСкладахОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ОстаткиПартий.Номенклатура КАК НоменклатураОстатков, СУММА(ВТ_ОстаткиПартий.КоличествоОстаток) КАК КоличествоОстаток, ВТ_ОстаткиПартий.Партия КАК ПартияОстатков, СУММА(ВТ_ДокТч.Количество) КАК Количество ИЗ ВТ_ДокТч КАК ВТ_ДокТч ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура СГРУППИРОВАТЬ ПО ВТ_ОстаткиПартий.Номенклатура, ВТ_ОстаткиПартий.Партия УПОРЯДОЧИТЬ ПО ВТ_ОстаткиПартий.Номенклатура.Наименование ИТОГИ СУММА(КоличествоОстаток) ПО НоменклатураОстатков, ПартияОстатков |
|||
2
Tolstiy Beremenniy
24.12.18
✎
04:15
|
Вот запрос, почему записи задвоены. я кручу эти запросы
пытаюсь получить нормальную выборку. Есть номенклатура есть партия, есть количество из регистра, есть количество из документа. Но в чем причина задвоения записей? Подскажите пожалуйста? ВЫБРАТЬ ПеремещениеТоваровСписокНоменклатуры.Номенклатура, СУММА(ПеремещениеТоваровСписокНоменклатуры.Количество) КАК Количество, ПеремещениеТоваровСписокНоменклатуры.Партия ПОМЕСТИТЬ ВТ_ДокТч ИЗ Документ.ПеремещениеТоваров.СписокНоменклатуры КАК ПеремещениеТоваровСписокНоменклатуры ГДЕ ПеремещениеТоваровСписокНоменклатуры.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО ПеремещениеТоваровСписокНоменклатуры.Номенклатура, ПеремещениеТоваровСписокНоменклатуры.Партия ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПродуктыНаСкладахОстатки.Номенклатура, ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, ПродуктыНаСкладахОстатки.Партия ПОМЕСТИТЬ ВТ_ОстаткиПартий ИЗ РегистрНакопления.ПродуктыНаСкладах.Остатки( &Момент, Номенклатура В (ВЫБРАТЬ ВТ_ДокТч.Номенклатура ИЗ ВТ_ДокТч КАК ВТ_ДокТч)) КАК ПродуктыНаСкладахОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ОстаткиПартий.Номенклатура КАК НоменклатураОстатков, СУММА(ВТ_ОстаткиПартий.КоличествоОстаток) КАК КоличествоОстаток, ВТ_ОстаткиПартий.Партия КАК ПартияОстатков, МАКСИМУМ(ВТ_ДокТч.Количество) КАК Количество, ВЫБОР КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия ТОГДА 1 ИНАЧЕ 2 КОНЕЦ КАК ПорядокСписания ИЗ ВТ_ДокТч КАК ВТ_ДокТч ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура СГРУППИРОВАТЬ ПО ВТ_ОстаткиПартий.Номенклатура, ВТ_ОстаткиПартий.Партия, ВЫБОР КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия ТОГДА 1 ИНАЧЕ 2 КОНЕЦ УПОРЯДОЧИТЬ ПО ВТ_ОстаткиПартий.Номенклатура.Наименование, ПорядокСписания, ВТ_ОстаткиПартий.Партия.МоментВремени ИТОГИ СУММА(КоличествоОстаток), СУММА(Количество) ПО НоменклатураОстатков, ПартияОстатков |
|||
3
Tolstiy Beremenniy
24.12.18
✎
04:30
|
Вот вроде в запросе нормальная выборка, такую можно перебирать?
ВЫБРАТЬ ПеремещениеТоваровСписокНоменклатуры.Номенклатура, СУММА(ПеремещениеТоваровСписокНоменклатуры.Количество) КАК Количество, ПеремещениеТоваровСписокНоменклатуры.Партия ПОМЕСТИТЬ ВТ_ДокТч ИЗ Документ.ПеремещениеТоваров.СписокНоменклатуры КАК ПеремещениеТоваровСписокНоменклатуры ГДЕ ПеремещениеТоваровСписокНоменклатуры.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО ПеремещениеТоваровСписокНоменклатуры.Номенклатура, ПеремещениеТоваровСписокНоменклатуры.Партия ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПродуктыНаСкладахОстатки.Номенклатура, ЕСТЬNULL(ПродуктыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, ПродуктыНаСкладахОстатки.Партия ПОМЕСТИТЬ ВТ_ОстаткиПартий ИЗ РегистрНакопления.ПродуктыНаСкладах.Остатки( &Момент, Номенклатура В (ВЫБРАТЬ ВТ_ДокТч.Номенклатура ИЗ ВТ_ДокТч КАК ВТ_ДокТч)) КАК ПродуктыНаСкладахОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ОстаткиПартий.Номенклатура КАК НоменклатураОстатков, ВТ_ОстаткиПартий.Партия КАК ПартияОстатков, СУММА(ВТ_ОстаткиПартий.КоличествоОстаток) КАК КоличествоОстаток, СУММА(ВТ_ДокТч.Количество) КАК Количество, ВЫБОР КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия ТОГДА 1 ИНАЧЕ 2 КОНЕЦ КАК ПорядокСписания ИЗ ВТ_ДокТч КАК ВТ_ДокТч ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиПартий КАК ВТ_ОстаткиПартий ПО ВТ_ДокТч.Номенклатура = ВТ_ОстаткиПартий.Номенклатура СГРУППИРОВАТЬ ПО ВТ_ОстаткиПартий.Номенклатура, ВТ_ОстаткиПартий.Партия, ВЫБОР КОГДА ВТ_ДокТч.Партия = ВТ_ОстаткиПартий.Партия ТОГДА 1 ИНАЧЕ 2 КОНЕЦ УПОРЯДОЧИТЬ ПО ВТ_ОстаткиПартий.Номенклатура.Наименование, ПорядокСписания, ВТ_ОстаткиПартий.Партия.МоментВремени ИТОГИ СУММА(КоличествоОстаток), СУММА(Количество) ПО НоменклатураОстатков |
|||
4
Tolstiy Beremenniy
24.12.18
✎
04:49
|
Задваиваться записи начинают когда я добавляю партию
в итог. если только номенклатура то нормально. А если я не добавлю партию, как я буду обходить результат по группировкам, если там не будет партии? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |