Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SAP(Контрольная работа №3).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
240.64 Кб
Скачать
  1. Оператор append sorted by, его описание и особенности работы.

Предположим, что нужно создать список 10 лучших коммерческих представителей компании. Если есть способ получить общий объем продаж для каждого, можно сделать следующее:

  • добавить всех представителей и их общий объем продаж во внутреннюю таблицу

  • отсортировать их по убыванию

  • вывести первые 10.

Оператор append sorted by приводит к тому же результату и является более эффективным.

Синтаксис оператора append sorted by:

append [wa to] it sorted by c.

где:

it — имя внутренней таблицы

wa — рабочая область, имеющая ту же структуру, что и строка внутренней таблицы

c — компонента it

Особенности использования оператора append sorted by:

  • Если wa to не определено, добавляется строка из строки заголовка

  • Если wa to определено, добавляется строка из рабочей области wa

  • Только одна компонента c может быть определена

Оператор append sorted by берет строку из рабочей области и вставляет ее во внутреннюю таблицу в порядке сортировки. У него есть два необычных свойства:

  • Число строк, которые могут быть добавлены, ограничено значением в выражении occurs. Например, в случае occurs 10, максимум 10 строк могут быть добавлено во внутреннюю таблицу. Это — единственная ситуация, где occurs лимитирует число строк, которые могут быть добавлены во внутреннюю таблицу

  • Он сортирует только в порядке убывания

  1. Оператор collect, его описание и особенности работы.

Используя оператор collect, можно просуммировать общие количества в пределах внутренней таблицы по ходу ее заполнения.

Синтаксис оператора collect:

collect [wa into] it.

где:

it — внутренняя таблица

wa — рабочая область той же структуры, что и у it

Особенности использования оператора collect:

  • Если дополнение wa into определено, строка, которая будет обработана, берется из явной рабочей области wa. В этом случае строка заголовка внутренней таблицы (если она у it есть) будет проигнорирована

  • Если дополнение wa into не определено, у внутренней таблицы должна быть строка заголовка. Строка, которая будет обработана, берется из строки заголовка it

При выполнении оператора collect система формирует ключ из заданных по умолчанию полей ключа в рабочей области. Заданные по умолчанию поля ключа — символьные поля (типа c, n, d, t и x). Поэтому ключ составляется из значений от всех полей типа c, n, d, t и x. Не имеет значения, находятся ли они друг около друга или отделены друг от друга другими полями

Затем система ищет в теле внутренней таблицы строку, у которой тот же ключ, что и ключ в рабочей области. Если она не находит такую строку, строка из рабочей области добавляется в конец таблицы. Если же находит, то числовые поля (типа i, p и f) из рабочей области добавляются к соответствующим полям в найденной строке.

  1. Копирование информации из одной внутренней таблицы в другую.

Данные, которые помещают во внутреннюю таблицу, обычно содержаться в одной или более таблицах базы данных.

Для заполнения внутренней таблицы используются 2 способа:

  • выбор множества строк непосредственно в тело внутренней таблицы

  • выбор единичных строк в рабочую область и затем добавление во внутреннюю таблицу

Выбор множества строк во внутреннюю таблицу

Для выбора множества строк непосредственно в тело внутренней таблицы используется дополнение into table в операторе select. Этот оператор берет выбранные строки и размещает их в тело внутренней таблицы за одну операцию, известную как «операция над массивом». При этом не нужны и не используются никакие рабочие области.

Операция над массивом (array operation) — любой оператор, который выполняет операцию над множеством строк внутренней таблицы за один раз. Операции над массивом всегда более эффективны, чем операции над одной строкой.

select into table — самый эффективный способ заполнить внутреннюю таблицу из таблицы базы данных.

Синтаксис дополнения into table оператора select:

(a) select *

(b) select f1 f2 . . .

from dbtab into [corresponding fields of] table it.

где:

dbtab — имя таблицы базы данных

f1 и f2 — поля в таблице dbtab

it — имя внутренней таблицы

Особенности использования дополнения into table оператора select:

  • у it может быть строка заголовка (header line)

  • другие дополнения, такие как where и order by, могут следовать после it

  • endselect не используется с into table. select into table не запускает цикл, следовательно endselect не нужен

select into table помещает все выбранные строки непосредственно в тело it. Существующее перед заполнением содержимое it теряется.

Добавление по одной строке с использованием select

Использование select для добавления строк по одной требует использования рабочей области и второго оператора: append, insert или collect. Исключение из select дополнения table назначает строку на рабочую область. Обычно используют строку заголовка внутренней таблицы как явную рабочую область. Альтернативно можно использовать заданную по умолчанию рабочую область таблицы (определенную в tables).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]