Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
database.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.12 Mб
Скачать

3. Оформление Отчета пробелами и итоговыми строками.

Когда вы используете фразу ORDER BY в команде SQL SELECT, записи с одинаковыми значениями в сортируемой колонке выводятся вместе. Можно улучшить данный вывод, используя команды SQL*PLUS BREAK и COMPUTE, для того, чтобы создать подмножество записей и добавить пустые и/или итоговые строки после каждого подмножества записей.

Чтобы подавить вывод на экран дублируемых значений в столбце, используется команда:

BREAK ON колонка_прерывания

Пример 3:

BREAK ON DEPTNO

SELECT deptno, ename, sal

FROM emp

WHERE sal < 2500

ORDER BY DEPTNO;

Можно вставлять пустые строки или начинать новую страницу каждый раз, когда изменяется значение колонки прерывания. Чтобы вставить n пустых строк, необходимо использовать команду BREAK в следующей форме:

BREAK ON колонка_прерывания SKIP n

Чтобы начать новую страницу, команда вводится следующим образом:

BREAK ON колонка_прерывания SKIP PAGE

Введя команду CLEAR с параметром BREAKS, можно удалить текущие определения колонок прерываний:

CLEAR BREAKS

Можно помещать команду CLEAR BREAKS в начало командного файла, чтобы предотвратить влияние на выполнение запросов предыдущих команд BREAK.

4. Вычисление итоговых строк при изменении значения колонки.

Можно производить различные вычисления над записями каждого подмножества. Эти вычисления производятся функциями SQL*PLUS команды COMPUTE. Для этого необходимо использовать команды BREAK и COMPUTE вместе в следующей форме:

BREAK ON колонка_прерывания

COMPUTE функция OF колонка колонка ... ON

колонка_прерывания

Можно включать несколько колонок прерывания и соответствующих действий, таких как пропуск строк, в команду BREAK, также аналогичный список может быть во фразе ON команды COMPUTE. Чтобы включить множественную колонку прерывания и соответствующие действия в BREAK вместе с командой COMPUTE, используются эти команды в следующем формате:

BREAK ON колонка_прерыв1 SKIP PAGE ON

колонка_прерыв2 SKIP 2

COMPUTE функция OF колонка колонка ... ON

колонка_прерыв2

Команда COMPUTE не имеет никакого действия без соответствующей команды BREAK. Команду COMPUTE можно использовать для колонок NUMBER и в некоторых случаях для всех типов колонок. Функция, которая будет указана в команде COMPUTE, действует на все колонки, которые написаны после OF и до ON. Вычисляемые значения печатаются перед разделительной строкой, когда изменяется значение упорядочиваемой колонки.

Чтобы вычислить общую сумму окладов (SAL) в отделе, сначала распечатайте текущее описание BREAK:

BREAK on DEPTNO skip page nodup

on JOB skip 1 nodup

Далее вводится команда COMPUTE, и выполняется текущий запрос:

COMPUTE SUM OF SAL ON DEPTNO

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

COMPUTE SUM OF SAL COMM ON REPORT

Нет необходимости вводить команду BREAK, так как ее уже ввели в предыдущем примере. Нужно добавить COMM к текущему запросу:

SELECT ENAME, SAL, COMM

и выполнить исправленный запрос:

Можно также напечатать несколько суммарных строк по тем же колонкам прерываний. Для этого достаточно включить функцию для каждой суммарной строки в команду COMPUTE:

COMPUTE функция OF колонка ON колонка_прерывания

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