Использование групировок из VIP Назад В начало Вперед
<оператор-группировки> = groupBy [ <имя-группы> ] :
  <список-ключевых-полей> <оператор>

Данный итератор может использоваться только внутри цикла по таблице _loop (см. "Оператор цикла по таблице. "). Действие итератора groupBy заключается в запоминании значения ключевых полей группировки в первом прохождении цикла. При дальнейших итерациях значения сравниваются, и если они не совпадают, то происходит выход из цикла. Особенностью является использование вложенных итераторов. В этом случае, проверка значений ключевых полей группировки будет происходить от внешнего итератора к внутреннему, а выходы из циклов по стандартной схеме.

Пример

_loop aTable
{
  <оператор-1>
  groupBy g1 : aTable f1
  {
	<оператор-2>
	groupBy g2 : aTable f2
	{
	<оператор-3>
}
	<оператор-4>
  }
  <оператор-5>
}

Последовательность данных:

f1

f2

f3

1

1

1

1

2

1

2

2

1

Последовательность выполнения операторов будет следующая:

вход _loop aTable
<оператор-1>
  вход groupBy g1 : aTable f1
  <оператор-2>
	вход groupBy g2 : aTable f2
	<оператор-3>
итерация _loop aTable
	выход groupBy g2 : aTable f2
  <оператор-4>
  <оператор-2>
	вход groupBy g2 : aTable f2
	<оператор-3>
итерация _loop aTable
	выход groupBy g2 : aTable f2
  <оператор-4>
  выход groupBy g1 : aTable f1
<operator-5>
<оператор-1>
  вход groupBy g1 : aTable f1
  <оператор-2>
	вход groupBy g2 : aTable f2
	<оператор-3>
итерация _loop aTable
	выход groupBy g2 : aTable f2
  <оператор-4>
  выход groupBy g1 : aTable f1
<operator-5>
выход _loop aTable

Версия

Атлантис 5.03