группировка одинаковых контрагентов

1. Terebinator 25.05.19 10:08 Сейчас в теме
Добрый день. При нажатии команды1, одинаковые контрагенты группируются и записываются количество одинаковых в поле количество. работает все как нужно. но если нажать на команду1 во второй раз, количество меняется на 1. не могу понять где ошибка


Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Таблица", Объект.ДанныеТО.Выгрузить());
Запрос.Текст =
"ВЫБРАТЬ
|Контрагент,
|Количество,
|Категория
|ПОМЕСТИТЬ ВТ_ТЧ
|ИЗ
|&Таблица КАК Таблица
|ИНДЕКСИРОВАТЬ ПО
|Контрагент
|;
|ВЫБРАТЬ
|Контрагент,
|Количество(Контрагент) КАК Количество
|ИЗ
|ВТ_ТЧ
|СГРУППИРОВАТЬ ПО
|Контрагент
|УПОРЯДОЧИТЬ ПО
|Контрагент
|;";
Объект.ДанныеТО.Загрузить(Запрос.Выполнить().Выгрузить());
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
8. tusv 211 25.05.19 12:24 Сейчас в теме
(5)Вариант раз, подсчет без сворачивания.
Свернуть и поместить в ВТ. Следующим пакетом соединяем первую ВТ со второй
ВЫБРАТЬ
	т.Контрагент КАК Контрагент,
	т.Категория КАК Категория
ПОМЕСТИТЬ ВТ
ИЗ
	&ТЗ КАК т

ИНДЕКСИРОВАТЬ ПО
	Контрагент,
	Категория
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ.Контрагент КАК Контрагент,
	ВТ.Категория КАК Категория,
	КОЛИЧЕСТВО(ВТ.Категория) КАК Количество
ПОМЕСТИТЬ ВТ2
ИЗ
	ВТ КАК ВТ

СГРУППИРОВАТЬ ПО
	ВТ.Контрагент,
	ВТ.Категория

ИНДЕКСИРОВАТЬ ПО
	Контрагент,
	Категория
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ.Контрагент КАК Контрагент,
	ВТ.Категория КАК Категория,
	ВТ2.Количество КАК Количество
ИЗ
	ВТ КАК ВТ
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2
		ПО (ВТ.Контрагент = ВТ2.Контрагент
				И ВТ.Категория = ВТ2.Категория)
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 25.05.19 10:32 Сейчас в теме
Ваш запрос считает количество повторяющихся в исходной таблице контрагентов. После первого прохода таблица сворачивается, и каждого контрагента в ней ровно по 1 штуке. Следовательно на втором проходе подсчет повторений контрагентов дает единицу.
3. Terebinator 25.05.19 10:39 Сейчас в теме
4. dhurricane 25.05.19 10:41 Сейчас в теме
(3) А что же тогда остается непонятным?
5. Terebinator 25.05.19 10:41 Сейчас в теме
(4)не понятно остается как же мне посчитать без свертки
6. dhurricane 25.05.19 10:46 Сейчас в теме
(5) Полагаю, что необходимо использовать колонку "М1" для подсчета. Примерно так:
ВЫБРАТЬ
   Контрагент,
   СУММА(ВЫБОР
      КОГДА КолонкаМ1 = 0 ТОГДА 1
      ИНАЧЕ КолонкаМ1
   КОНЕЦ) КАК Количество
ИЗ
   ВТ_ТЧ
СГРУППИРОВАТЬ ПО
   Контрагент
Показать
7. Terebinator 25.05.19 10:49 Сейчас в теме
(6)а это мысль попытаться использовать колонки категорий для подсчета
8. tusv 211 25.05.19 12:24 Сейчас в теме
(5)Вариант раз, подсчет без сворачивания.
Свернуть и поместить в ВТ. Следующим пакетом соединяем первую ВТ со второй
ВЫБРАТЬ
	т.Контрагент КАК Контрагент,
	т.Категория КАК Категория
ПОМЕСТИТЬ ВТ
ИЗ
	&ТЗ КАК т

ИНДЕКСИРОВАТЬ ПО
	Контрагент,
	Категория
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ.Контрагент КАК Контрагент,
	ВТ.Категория КАК Категория,
	КОЛИЧЕСТВО(ВТ.Категория) КАК Количество
ПОМЕСТИТЬ ВТ2
ИЗ
	ВТ КАК ВТ

СГРУППИРОВАТЬ ПО
	ВТ.Контрагент,
	ВТ.Категория

ИНДЕКСИРОВАТЬ ПО
	Контрагент,
	Категория
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ.Контрагент КАК Контрагент,
	ВТ.Категория КАК Категория,
	ВТ2.Количество КАК Количество
ИЗ
	ВТ КАК ВТ
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2
		ПО (ВТ.Контрагент = ВТ2.Контрагент
				И ВТ.Категория = ВТ2.Категория)
Показать
10. Terebinator 27.05.19 20:35 Сейчас в теме
(8)
ВЫБРАТЬ
т.Контрагент КАК Контрагент,
т.Категория КАК Категория
ПОМЕСТИТЬ ВТ
ИЗ
&ТЗ КАК т

ИНДЕКСИРОВАТЬ ПО
Контрагент,
Категория
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
ВТ.Контрагент КАК Контрагент
КОЛИЧЕСТВО(ВТ.Категория) КАК Количество
ПОМЕСТИТЬ ВТ2
ИЗ
ВТ КАК ВТ

СГРУППИРОВАТЬ ПО
ВТ.Контрагент

ИНДЕКСИРОВАТЬ ПО
Контрагент
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
ВТ.Контрагент КАК Контрагент,
ВТ.Категория КАК Категория,
ВТ2.Количество КАК Количество
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2
ПО (ВТ.Контрагент = ВТ2.Контрагент)
Показать



Работает) только нужно было убрать категорию из вт. спасибо)
9. tusv 211 25.05.19 12:29 Сейчас в теме
(5) Второй вариант. Используем итоги и Заполняем таблицу обходом по группировкам.
На втором проходе мы получаем Контрагента, Категорию, Имя колонки из категории с количеством повторений категорий
ВЫБРАТЬ
	т.Контрагент КАК Контрагент,
	т.Категория КАК Категория,
	1 КАК Количество
ПОМЕСТИТЬ ВТ
ИЗ
	&ТЗ КАК т

ИНДЕКСИРОВАТЬ ПО
	Контрагент,
	Категория
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ.Контрагент КАК Контрагент,
	ВТ.Категория КАК Категория,
	ВТ.Количество КАК Количество
ИЗ
	ВТ КАК ВТ
ИТОГИ
	СУММА(Количество)
ПО
	Контрагент,
	Категория
Показать
Terebinator; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот