Difference between revisions of "TempDB.Group"
m (1 revision imported) |
1>Admin |
||
| Line 13: | Line 13: | ||
* [[Объекты]] | * [[Объекты]] | ||
* [[Временная таблица базы данных]]}} | * [[Временная таблица базы данных]]}} | ||
| − | Функция выполняет операцию группировки над записями таблицы, в таблице результате остаются только столбцы группировки и столбцы агрегации. В операции участвуют все записи таблицы. См. также [[Tab.Group|Group]]. | + | Функция выполняет операцию группировки над записями таблицы, в таблице результате остаются только столбцы группировки и столбцы агрегации. В операции участвуют все записи таблицы. См. также [[Tab.Group|Group]]. Функция не будет работать для постоянных таблиц внешних БД (будет вызывать исключение), если необъходимо ее использовать, можно предварительно скопировать содержимое постоянной таблицы во временную. {{Planned}} Также планируется возможность работы с постоянными таблицами, когда функция возвратит результат в новой временной таблице. |
== Синтаксис == | == Синтаксис == | ||
Revision as of 09:29, 27 January 2026
| Group (Группировка таблицы) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция выполняет операцию группировки над записями таблицы, в таблице результате остаются только столбцы группировки и столбцы агрегации. В операции участвуют все записи таблицы. См. также Group. Функция не будет работать для постоянных таблиц внешних БД (будет вызывать исключение), если необъходимо ее использовать, можно предварительно скопировать содержимое постоянной таблицы во временную. (планируется к реализации) Также планируется возможность работы с постоянными таблицами, когда функция возвратит результат в новой временной таблице.
Синтаксис
TempDB.Group(<Столбцы группировки (STRING)>,<Столбцы агрегации с операциями (STRING)>)
Аргументы
<Столбцы группировки (STRING)>- (необязательный аргумент) Аргумент перечисляет через запятую наименования столбцов, по которым будет группироваться таблица. Регистр наименований не имеет значения. Каждый заданный столбец должен присутствовать во временной таблице.<Столбцы агрегации с операциями (STRING)>- (необязательный аргумент) Аргумент перечисляет наименования столбцов через запятую, для которых будет выполнена заданная операция агрегации. Регистр наименований не имеет значения. Каждый заданный столбец должен присутствовать в таблице. Формат записи выглядит сл. образом:<Столбец1[:<Операция1>][,<Столбец2[:<Операция2>]...]>. Функция позволяет использовать следующие операции:- SUM (по умолчанию) -- значения столбца для удаляемых строк и оставшихся строк будут найдены суммированием.
- AVG -- Будут найдены средние значения столбца для удаляемых строк и оставшихся строк.
- MAX -- В столбцах оставшихся строках будет содержаться максимальное из значение удаляемых строк и оставшихся.
- MIN -- В столбцах оставшихся строках будет содержаться минимальное из значение удаляемых строк и оставшихся.
- COUNT -- В столбцах оставшихся строках будет содержаться количество удаленных строк этой группировки, увеличенное на единицу.
Примеры
//Пример создает таблицу аТемп, и заполняет ее резервами реализациями договора аДоговор с помощью загрузки движений накопителя Взаиморасчеты
// При этом суммы подчиненных документов возврата отнимаются от сумм документов реализации
//После создания, производится выборка записей по датам документов реализации
аТемп:=TempDB.Create("аДок:DB,Сумма:NUMBER.15.2");
аТемп.LoadFrom("Stor.Взаиморасчеты","@LINK->аДок,Сумма*?(@EXPENSE=1,-1,1)->Сумма","Договор=аДоговор","isEmpty(Тара)","IsType(@LINK,Doc.Реализация,Doc.ВозвратОтПокупателя)");
//Для документов возврата подставляем в столбик аДок их основание
аТемп.Update(,"аДок..Doc.ВозвратОтПокупателя.ДокОснование->аДок","IsType(аДок,Doc.ВозвратОтПокупателя)");
аТемп.Group("аДок","Сумма");
аТемп.Remove("(Сумма<=0)Or(Not isType(аДок,Doc.Реализация))");
аТемп.AddColumns("Дата:DATE");
аТемп.Update(,"аДок..Doc.Реализация.DocDate->Дата");
аТемп.Select("Дата-");
...