Difference between revisions of "TempDB.Group"

From SunFlurry wiki
Jump to: navigation, search
 
m (1 revision imported)
 
(No difference)

Latest revision as of 08:54, 7 February 2021

  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("Дата-");
...