Имя: Пароль:
1C
1С v8
Выборка результата запроса с итогами - итоги сразу по нескольким полям
,
0 Rebelx
 
28.12.11
13:34
Есть запрос с итогами по 3 полям. Мне же интересна только общая группировка сразу по всем полям (т.е. третий уровень) и детальные записи.

ВЫБРАТЬ
   1 КАК Поле1,
   2 КАК Поле2,
   3 КАК Поле3,
   4 КАК Поле4
ПОМЕСТИТЬ вт
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   вт.Поле1 КАК Поле1,
   вт.Поле2 КАК Поле2,
   вт.Поле3 КАК Поле3,
   СУММА(вт.Поле4) КАК Поле4
ИЗ
   вт КАК вт

СГРУППИРОВАТЬ ПО
   вт.Поле1,
   вт.Поле2,
   вт.Поле3
ИТОГИ
   СУММА(Поле4)
ПО
   Поле1,
   Поле2,
   Поле3


СКД так делает, а без нее?
1 Rebelx
 
28.12.11
13:37
точнее так:

ВЫБРАТЬ
   вт.Поле1 КАК Поле1,
   вт.Поле2 КАК Поле2,
   вт.Поле3 КАК Поле3,
   вт.Поле4 КАК Поле4
ИЗ
   вт КАК вт
ИТОГИ
   СУММА(Поле4)
ПО
   Поле1,
   Поле2

нужна группировка по полям (Поле1 и Поле2) и детальные записи
2 Ненавижу 1С
 
гуру
28.12.11
13:37
ИТОГИ
   СУММА(Поле4)
МАКСИМУМ(Поле1),
МАКСИМУМ(Поле2)
ПО
   Поле3
3 Rebelx
 
28.12.11
13:40
(2) это к (0) или к (1)?
4 Ненавижу 1С
 
гуру
28.12.11
13:41
(3) к (0)
5 Rebelx
 
28.12.11
13:46
(4) так не получается.
должно быть два уровня - на первом все возможные сочетания полей 1 и 2, на втором - значения поля 3

ВЫБРАТЬ
   1 КАК Поле1,
   2 КАК Поле2,
   3 КАК Поле3,
   4 КАК Поле4
ПОМЕСТИТЬ вт
Объединить
ВЫБРАТЬ
   5 КАК Поле1,
   6 КАК Поле2,
   7 КАК Поле3,
   8 КАК Поле4
Объединить
ВЫБРАТЬ
   9 КАК Поле1,
   6 КАК Поле2,
   7 КАК Поле3,
   8 КАК Поле4
;
ВЫБРАТЬ
   вт.Поле1 КАК Поле1,
   вт.Поле2 КАК Поле2,
   вт.Поле3 КАК Поле3,
   вт.Поле4 КАК Поле4
ИЗ
   вт КАК вт
ИТОГИ
   СУММА(Поле4), максимум(Поле1) , максимум(Поле2)
ПО
   
   Поле3
6 Axel2009
 
28.12.11
13:48
(5) ты нарисуй как должен выглядеть результат
7 Rebelx
 
28.12.11
13:54
8 Axel2009
 
28.12.11
14:08
(7) ну и получилось ведь. в чем вопрос то?
9 Axel2009
 
28.12.11
14:09
в запросах можно группировать только по одному полю. поэтому выводи свой результат в таблицу значений из макета скд и получай удовольствие
10 Axel2009
 
28.12.11
14:10
либо при выборке из результата пропускай группировку по "Поле1"
11 Rebelx
 
28.12.11
14:13
у меня 5 группировок и проведение документа. не очень хочется в проведении СКД пользовать
12 Axel2009
 
28.12.11
14:20
(11) не обрабатывай ненужные имена группировок.
в итоге у тебя будет запрос из (1)
выборкаг1 = запрос.выполнить().выбрать(обходрезультатазапроса.погруппировка);
пока выборкаг1.следующий() цикл
выборкаг2 = выборкаг1.выбрать(обходрезультатазапроса.погруппировка);
пока выборкаг2.следующий() цикл
 //тут обработка 2х группировок
 выборкадет = выборкаг2.выбрать();
конеццикла;
конеццикла;
13 Axel2009
 
28.12.11
14:21
либо играйся с
ВыборкаИзРезультатаЗапроса (QueryResultSelection)
Выбрать (Choose)
Синтаксис:

Выбрать(<ТипОбхода>, <Группировки>, <ГруппировкиДляЗначенийГруппировок>)
2ой параметр. но я ни разу не пользовал через запятую
14 Rebelx
 
28.12.11
15:38
(13)не смог подобрать нужный вариант
15 Axel2009
 
28.12.11
15:42
(14) тогда (12)
Основная теорема систематики: Новые системы плодят новые проблемы.