![]() |
![]() |
![]() |
|
Группировка в запросе по строковому полю | ☑ | ||
---|---|---|---|---|
0
yabes
26.06.11
✎
23:22
|
Ситуация следующая: у меня есть таблица значений (к конфигурации она не имеет отношения, я ее загрузил из Excel)! Если ее максимально упростить - пусть там имеется 2 колонки: первая колонка ФАМИЛИЯ - строкового типа, вторая колонка СУММАДОЛГА - число. Требуется сгруппировать таблицу значений по первой колонке (при этом вторую колонку взять как СУММУ). Я решил попробовать сделать это с использованием запроса. Загнал эту таблицу значений в запрос как источник данных (как временную таблицу) и попытался сгруппировать таблицу по первой колонке, но выдалась ошибка, что это недопустимое поле для группировки! При создании таблицы значений я явно указал тип для колонок - один как строка, второй как число. Так можно ли сгруппировать ТЗ с использованием запроса?
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ ИЗ &ТЗ КАК ТЗ"; Запрос.УстановитьПараметр("ТЗ", ТЗ); Запрос.Выполнить(); Запрос.Текст = "ВЫБРАТЬ | ТЗ.Фамилия, | СУММА(ТЗ.СуммаДолга) КАК СуммаДолга |ИЗ | ТЗ КАК ТЗ | |СГРУППИРОВАТЬ ПО | ТЗ.Фамилия"; Результат = Запрос.Выполнить(); |
|||
1
IronDemon
26.06.11
✎
23:23
|
Типизируй колонки.
|
|||
2
Собеседник
26.06.11
✎
23:26
|
(1) :)
"...При создании таблицы значений я явно указал тип для колонок - один как строка, второй как число..." |
|||
3
Mort
26.06.11
✎
23:27
|
(0) Функции группировки, итогов и т.д не доступны сразу из параметра таблицы значений. Сначала загони во временную таблицу, потом из неё группируй.
|
|||
4
Mort
26.06.11
✎
23:28
|
+(3) гоню. Не прочитал внимательно.
|
|||
5
yabes
26.06.11
✎
23:29
|
(2) Я сделал так:
КЧ = Новый КвалификаторыЧисла(15,2); Массив = Новый Массив; Массив.Добавить(Тип("Число")); ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ); Массив.Очистить(); Массив.Добавить(Тип("Строка")); ОписаниеТиповС = Новый ОписаниеТипов(Массив); ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Фамилия",ОписаниеТиповС); ТЗ.Колонки.Добавить("СуммаДолга",ОписаниеТиповЧ); |
|||
6
Собеседник
26.06.11
✎
23:29
|
(3) + 1
|
|||
7
Mort
26.06.11
✎
23:30
|
(5) Строка должна быть ограничена по количеству символов.
|
|||
8
yabes
26.06.11
✎
23:32
|
(5) Я попробовал ее ограничить в конструкторе запросов при редактировании временной таблицы. Сейчас попробую поставить ограничение при создании ТЗ. Не уходите никуда))))
|
|||
9
Собеседник
26.06.11
✎
23:36
|
(8) не-не! мы тут. стоим. ждем.
|
|||
10
Mort
26.06.11
✎
23:39
|
(8) Указание типов полей временной таблицы в конструкторе запросов это фича из которой Боря ловит лулзы когда кто-то над ней заморачивается.
|
|||
11
yabes
26.06.11
✎
23:40
|
Парни, все получилось! Спасибо Вам огромное!)
|
|||
12
Собеседник
26.06.11
✎
23:46
|
(11) ну слава Богу!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |