|
E SQL*Calc F E
Введение в SQL*Calc
для пользователей LOTUS 1-2-3 F
E Система управления реляционной БД ORACLE F
Эта брошюра дает общее представление о SQL*Calc,крупноформатной совме-
стимой с Lotus 1-2-3 таблицей,об'едененной с системой управления реляционной
БД ORACLE.Серии примеров показывают,как SQL*Calc легко решает те задачи,кото-
рые трудно или невозможно решить используя Lotus 1-2-3.
Copyright 1986,Корпорация Oracle,Белмонт,Калифорния.
Все права сохраняются.Напечатано в США.
Lotus и 1-2-3 - зарегистрированные торговые марки Lotus Development Corporation
ORACLE и SQL*Calc - зарегистрированные торговые марки Oracle Corporation
Intel и Above Board - торговые марки Intel Corporation
dBASE 2 зарегистрированная торговая марка Ashton-Tate и др.
IBM,SQL/DS и DB2 - зарегистрированные торговые марки International Busines
Machines Corporation.
E СОДЕРЖАНИЕF
ВВЕДЕНИЕ ....
ГЛАВА 1:ЗАПУСК SQL*Calc ..
ГЛАВА 2:СОВМЕСТИМОСТЬ с Lotus 1-2-3
Ввод заголовков столбцов в SQL*Calc
Ввод повторяемого текста .
Копирование содержимого ячейки
Ввод данных ....
Ввод аналитических выражений ..
ГЛАВА 3:ДОСТУП К БАЗЕ ДАННЫХ ..
Структура БД ORACLE ..
Отображение на дисплее списка таблиц БД ORACLE
Ввод SQL команды переноса данных ...
Выполнение SQL команды ...
Перенос строк спецификаций из таблици ORACLE .
Использование @SUM для суммирования данных ORACLE,
уже находящихся в крупноформатной таблице ....
Использование SELECT SUM для суммирования данных
ORACLE вне крупноформатной таблицы .
Использование значений крупноформатной таблицы в команде SELECT....
Копирование SQL - командой c ссылкой на ячейку....
Вычисление разности между прогнозом и реальностью.
ГЛАВА 4:ДОБАВЛЕНИЕ НОВОЙ ТАБЛИЦЫ В БАЗУ ДАННЫХ ORACLE ..
Сохранение крупноформатной таблицы .
Поиск данных для второго отчета ....
Вычисление процентного разброса для второго отчета
Размер крупноформатной таблицы и проблема сложности...
ГЛАВА 5:КОРРЕКТИРОВКА БАЗЫ ДАННЫХ ORACLE ИЗ КРУПНОФОРМАТНОЙ ТАБЛИЦЫ..
ГЛАВА 6:ДЕЛЕНИЕ ДАННЫХ МЕЖДУ КРУПНОФОРМАТНЫМИ ТАБЛИЦАМИ
Восстановление 1-го отчета с новыми данными прогноза из БД...
ЗАКЛЮЧЕНИЕ ..
+ EВВЕДЕНИЕ F
ESQL*Calc: крупноформатная таблица и реляционная СУБДF
Добро пожаловать в SQL*Calc,крупноформатную совместимую с LOTUS 1-2-3 таб-
лицу,об'единенную с реляционной СУБД ORACLE.SQL*Calc получил свое название в
следствии способности его крупноформатной таблицы(Calc) использовать эффектив-
ность SQL(произносится секуэл) для доступа к данным.
SQL представляет собой язык,используемый IBM SQL/DS и DB2.SQL/DS и DB2 вк-
лючены в последнее поколение IBM,обладающих методикой управления БД для боль-
ших вычислительных машин IBM.
EРабота на микро-,мини- и основном комплектеF
SQL*Calc работает на основном комплекте IBM,DEC и некоторых других мик-
рокомпьютерах,и ряде микрокомпьютеров,включающем IBM PC/XT,PC/AT и RT PC.Все
версии SQL*Calc - основной комплект,мини- и микро- идентичны и включают в себя
полную реализацию SQL,а не подмножество ее реализации.
Примеры в этой брошюре продемонстрируют,что SQL*Calc cовместим с LOTUS
1-2-3.Но SQL*Calc расширяет действия LOTUS 1-2-3 давая вам возможность :
- доступа к большому количеству данных,находящихся в БД ORACLE непосредствен-
но из своего SQL*Calc.
- создать таблицу в БД ORACLE непосредственно из своего SQL*Calc.
- скорректировать данные в БД ORACLE данными из своего SQL*Calc.
- совместно использовать данные,находящиеся в БД ORACLE,многочисленными круп-
ноформатными таблицами и пользователями таблиц.
Цель этой брошюры - показать,как SQL*Calc легко решает задачи,которые
трудно или невозможно решить с использованием LOTUS 1-2-3.
+ EГЛАВА 1F
EЗАПУСК SQL*CalcF
Читая примеры в этой брошюре предположите,что вы вицепрезидент аукцио-
нов международных изготовителей вычислительных машин.Вы только что завершили
10 месяцев своего финансового года и хотите применить SQL*Calc на своей IBM PC
/XT,чтобы выяснить,каковы реальные результаты работы аукциона по сравнению с
прогнозом,сделанным вами и вашим персоналом в начале года.Пусть вашим именем
будет SCOTT.
E В этой брошюре то,что вам надо вводить с экрана дисплея,отпечатано
жирным шрифтом и ему предшествует символ # F
EЗагрузка ORACLE в памятьF
Чтобы иметь доступ к БД ORACLE во время пользования крупноформатной та-
блицей SQL*Calc,вам нужно загрузить СУБД ORACLE в память:
# введите EoracleF и нажмите . также называется вводом или
возвратом каретки и обозначается <ДЩ на клавеатуре IBM PC.
Системная
подсказка----Д> C>
Вы вводи-----Д> C>oracle
те
После того как вы нажали ,появится авторское сообщение СУБД ORACLE.
C>oracle
Авторское----Д>.Copyright (c) 1984 Oracle Corporation,
сообщение Menfo Park,California,All rights reserved
This software has been provided under a lisense agreement
containing certain restriction on use and disclosure
Reverse engineering of object code is prohibited
ORACLE V4.1.4 - Production
Access through interrupt 64(hex)
Context cach is 32768 bytes
C>
Теперь СУБД ORACLE загружена в память.
EЗапуск SQL*CalcF
Чтобы запустить SQL*Calc надо :
# ввести EsqlcalcF и нажать .
C>oracle
Copyright (c) 1984 Oracle Corporation,
Menfo Park,California,All rights reserved
This software has been provided under a lisense agreement
containing certain restriction on use and disclosure
Reverse engineering of object code is prohibited
ORACLE V4.1.4 - Production
Access through interrupt 64(hex)
Context cach is 32768 bytes
Вы вводи-----Д>.C>sqlcalc
те
EВход в SQL*CalcF
Непосредственно после нажатия клавиши на экране появится заста-
вка начала работы SQL*Calc:
SQL*Calc
The Spreadsheed Interface to the
ORACLE Relationel DBMS
Copyright (c) 1985
Oracle Corporation,Belmont,California,
All rights reserved
0% USED,SQL*Calc version 1.0,for IBM PC with MS-DOS 2.0 or later
Enter your ORACLE user identification.(Press to skip logon.)
EЗащита данныхF
Так как данные об аукционе представляют собой секрет компании,вам не
хотелось бы,чтобы кто-нибудь без разрешения смотрел эту информацию.Чтобы сох-
ранить тайну ваших данных,в SQL*Calc требуется,чтобы пользователи сами иденти-
фицировали имя пользователя и пароль.
Чтобы ввести свое имя пользователя надо:
# ввести ESCOTTF и нажать .
SQL*Calc
The Spreadsheed Interface to the
ORACLE Relationel DBMS
Copyright (c) 1985
Oracle Corporation,Belmont,California,
All rights reserved
Подсказ-
ка для
имени 0% USED,SQL*Calc version 1.0,for IBM PC with MS-DOS 2.0 or later
польз.Д>.Enter your ORACLE user identification.(Press to skip logon.).
Здесь Д>.SCOTT
ввести
имя
Теперь SQL*Calc даст вам подсказку на введение пароля
SQL*Calc
The Spreadsheed Interface to the
ORACLE Relationel DBMS
Copyright (c) 1985
Oracle Corporation,Belmont,California,
All rights reserved
Подсказ-
ка для
пароля 0% USED,SQL*Calc version 1.0,for IBM PC with MS-DOS 2.0 or later
польз.Д>.Enter password
Здесь Д>
ввести
пароль
Пароль
не виден.Enter password
на дисп-
лее Д>
EЗащита пароляF
Когда вы вводите свой пароль,он не появляется на экране.Таким образом,
если кто нибудь посмотрит вам через плечо,то он не узнает ваш пароль.Только
если ORACLE подтвердит ваше имя и пароль,крупноформатная таблица SQL*Calc поя-
вится на экране.Ее изображение смотрите на следующей странице.
+ EГЛАВА 2F
EСОВМЕСТИМОСТЬ С LOTUS 1-2-3F
Примеры в этой главе продемонстрируют,что крупноформатная таблица SQL*
Calc совместима с крупноформатной таблицей LOTUS 1-2-3 по некоторым направле-
ниям:
- крупноформатная таблица SQL*Calc выглядит как крупноформатная таблица 1-2-3
- входные данные в SQL*Calc такие же,как и входные данные в 1-2-3
- входные аналитические выражения в SQL*Calc такие же,как и в 1-2-3
- функциональные ключи в SQL*Calc те же,что в 1-2-3
- команды и меню SQL*Calc те же,что в 1-2-3
1 A B C D E F G H
2 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
3 0% USED,SQL*Calc version 1.0,for IBM PC with MS-DOS 2.0 or later
4Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.)
1-колонки букв
2-пронумерованные ряды
3-строка состояния
(0% использованно,SQL*Calc версия 1.0,для IBM PC с MS-DOS или более поздней)
4-строка подсказки
(Нажмите HELP() в любое время.(начните SQL с $,
аналитическое выражение с +,команду с /.))
Если вы являетесь пользователем Lotus 1-2-3,то этот экран выглядит очень
привычным.SQL*Calc спроектирован так,чтобы быть совместимым с 1-2-3,но SQL*
Calc имеет дополнительные особенности,которые делают его более эффективным и
легким для пользователя,чем 1-2-3.
Одной полезной особенностью SQL*Calc является размещение строк состоя-
ния,подсказки и ввода внизу экрана вместо верха.С этим изменением легче перек-
лючаться от наблюдения за клавиатурой к наблюдению того,что вы вводите на эк-
ране.
EСтрока состоянияF
Строка состояния представляет собой строку,где SQL*Calc показывает на
дисплее сообщения и содержимое ячеек.Строка состояния также показывает процен-
тное соотношение рабочей памяти компьютера,используемой SQL*Calc для размеще-
ния данных в крупноформатной таблице.Lotus 1-2-3 этого не делает.Таким образом,
вы всегда знаете,когда данные крупноформатной таблицы заполнят память до конца.
EСтрока подсказкиF
SQL*Calc всегда обеспечивает вас строкой подсказки.Lotus 1-2-3 этого не
делает.С SQL*Calc вы никогда не окажитесь без указаний о том,что делать даль-
ше.Строка подсказки расположена на второй строке снизу экрана.
EСтрока вводаF
Строка ввода - последняя строка внизу экрана.Это строка,где вы делаете
все свои записи.
EВВОД ЗАГОЛОВКОВ СТОЛБЦОВ В SQL*CalcF
Ввод данных в SQL*Calc идентичен вводу данных в 1-2-3.Давайте введем
следующие региональные данные прогноза работы аукциона в SQL*Calc:
Region HQ Manager Forecast
--------------------------------------
East New-York Owens $ 10.500.000
Central Chicago Parker $ 6.400.000
West Los Ang. Green $ 3.500.000
Asia Tokyo Okura $ 9.700.000
Europe Amsterdam Jansen $13.700.000
EВведение заголовковF
Чтобы ввести заголовки столбцов:
# Нажмите клавишу EF,чтобы передвинуть курсор к ячейке A1
Замечание: находится на клавиатуре IBM PC с правой стороны.Для опре-
деления местоположения на других клавиатурах посмотрите
документацию к соответствующей клавиатуре.
# Введите EREGIONF и нажмите E-->F,чтобы передвинуться к ячейке B1(клави-
ша с правой стороны на клавиатуре IBM PC)
# Введите HQ и нажмите E-->F,чтобы передвинуться к ячейке C1.
# Введите EMANAGERF и нажмите E-->F,чтобы передвинуться к ячейке D1.
# Введите EFORECASTF и нажмите EF.
A B C D E F G H
1 REGION HQ MANAGER EFORECASTF
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,SQL*Calc version 1.0,for IBM PC with MS-DOS 2.0 or later
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.)
Как вы можете заметить,ввод текста в SQL*Calc идентичен вводу текста в
Lotus 1-2-3.
ВВОД ПОВТОРЯЕМОГО ТЕКСТА
Теперь,для того чтобы наши данные были более удобочитаемы,проведем чер-
ту под каждым заголовком столбца,начиная с элемента A2:
# Нажмите клавишу EF (EF на клавиатуре IBM PC),введите A2
в качестве ячейки,в которую вы хотите перейти,и нажмите EF
EВвод повторяемого текстаF
# Нажмите E<\>F (клавиша обратной косой черты) и нажмите E<->F
для заполнения сразу всей ячейки A2
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2E---------F
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,A2(Repeating)=Д
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.)
Повторяемый текст заполняет ячейку так же,как и в 1-2-3.
EКОПИРОВАНИЕ СОДЕРЖИМОГО ЯЧЕЙКИF
Теперь скопируем повторяющийся текст в ячейку справа.
EКоманда начинается с >F
# Нажмите E>F(клавиша косой черты) для начала команды.
Строка подсказки покажет теперь меню команд:
A B C D E F G H
1 REGION HQ MANAGER FORECAST
1 2E---------F
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,A2(Repeating)=Д
2EWerksheetF Range Copy File Logout Print Oracle Quit
3Set options,titles or windous; insert,delete or move rows @ cols; erasi all
1-Копируемый повторяющийся текст
2-Меню команд
3-Строка описания команд
(установка опций,заголовков или окон; вставка,
удаление или перемещение строк; удаление всего)
# Нажмите E< --> >F дважды,чтобы передвинуть курсор к COPY в меню команд.
Werksheet Range ECopyF File Logout Print Oracle Quit
4.COPY to contents of a cell or rang of cells to other cells
4-Высвечено COPY.Описана команда COPY.
(Копирует содержимое ячейки или области ячеек в другие ячейки)
Заметим,что строка под меню команд изменяется,описывая вам команду,выс-
веченную в текущий момент курсором.
EВыбор командыF
# Нажмите EF или EF для выбора COPY.
Появится подсказка COPY:
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2---------
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,A2(Repeating)=Д
1FROM range? (ENTER for current cell)(Adjust lower case cell references onle)
2
1-Подсказка COPY
(Из какой области? ( для текущей ячейки.Устанавливаются
только граници области ячеек.))
2-Ввод области откуда и куда
# Нажмите EF,чтобы скопировать из текущей ячейки ( A2 ).
# Введите B2.D2 EF,чтобы определить область ячеек,
в которую вы хотите скопировать командой SQL,от B2 до D2.
Повторяемый текст теперь скопирован по всей строке
A B C D E F G H
1 REGION HQ MANAGER FORECAST
1 2--------------------------------------
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,A2(Repeating)=Д
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.)
1-Скопирован повторяющийся текст
E1-2-3 совместимые меню и командыF
Меню команд SQL*Calc такое же,как меню команд в 1-2-3.В начале команды
вы нажимаете >.Вы двигаетесь влево и вправо по меню команд используя клавиши
со стрелками,и строка под строкой меню команд изменяется давая вам описание
команды,высвеченной в текущий момент.Когда вы высвечиваете желаемую команду,вы
нажимаете или вводите первую букву команды,чтобы выбрать эту команду.И
конечно сами команды,как,например,копирование содержимого ячейки,согласуются с
соответствующими командами 1-2-3.
EВВОД ДАННЫХF
Теперь введем остальную информацию прогноза:
# Нажмите клавишу E<стрелка вниз>F,чтобы передвинуться в ячейку A3 и введи-
те региональные названия.
#Введите East и нажмите E<стрелка вниз>F,чтобы передвинуться на ячейку ниже.
# Введите Central E<стрелка вниз>F
West E<стрелка вниз>F
Asia E<стрелка вниз>F
Europe E<стрелка вниз>F
# Введите E B3 F и введите местоположение региональных штабов.
# Введите New-York E<стрелка вниз>F
Chicago E<стрелка вниз>F
Los Ang.E<стрелка вниз>F
Tokyo E<стрелка вниз>F
Amsterdam E<стрелка вниз>F
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
1 3East New-York
4Central Chicago
5West Los Ang
6Asia Tokyo
7Europe Amsterdam
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,B8(Blank)
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.)
1-в крупноформатную таблицу введены названия регионов и региональных штабов.
# Введите E C3 F и введите имена менеджеров.
# Введите Owens E<стрелка вниз>F
Parker E<стрелка вниз>F
Green E<стрелка вниз>F
Okura E<стрелка вниз>F
Jansen E<стрелка вниз>F
# Введите E C3 F и введите данные прогноза.
# Введите $10.500.000 E<стрелка вниз>F
$ 6.400.000 E<стрелка вниз>F
$ 3.500.000 E<стрелка вниз>F
$ 9.700.000 E<стрелка вниз>F
$13.700.000 E<стрелка вниз>F
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2-------------------------------------
1 3East New-York Owens 10500000
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,D8(Blank)
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.)
1-Введены имена менеджеров и данные прогноза
EВ SQL*Calc совместимый с 1-2-3 ввод текстовых и цифровых данныхF
Как вы можете заметить,ввод текста и чисел в SQL*Calc такой же,что и в 1-2-3.
EВВОД АНАЛИТИЧЕСКИХ ВЫРАЖЕНИЙF
Теперь давайте воспользуемся SQL*Calc для вычисления суммы данных прог-
ноза работы аукциона для всех регионов.Сперва,проведем сплошную линию так,что-
бы сумму было бы легче читать:
EПроведение сплошной линииF
# В ячейке D8,введите E<\> <-> F для заполнения ее.
# Нажмите E<стрелка вниз>F,чтобы передвинуться в ячейку D9.
Теперь просумируем ячейки с D3 по D8,включая сплошную линию.
# Наберите E@SUM(F
# Нажмите E<стрелка вверх>F 6 раз,чтобы попасть в ячейку D3 и нажмите <.>.
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
1 3East New-York Owens E 10500000F
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9
10
11
12
13
14
15
16
17
18
19
20
21
20% USED,D3(Namber)=10500000
3TYPE FORMULA.Press arrow key or when done.
@SUM(D3,
1-укажите ячейку D3
На строке ввода команд появится ссылка на ячейку D3
# Нажмите E<стрелка вниз>F пять раз,чтобы перейти в ячейку D8 и потом наж-
мите E<)>F(клавиша правой скобки)
Входная строка теперь будет выглядеть следующим образом:
TYPE FORMULA.Press arrow key or when done.
1.@SUM(D3,D8)
1-Аналитическое выражение
Нажмите и SQL*Calc вычислит сумму данных в столбце Forecast и
покажет ее на экране в ячейке D9.
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
3East New-York Owens E 10500000 F
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,D9(Formula)=SUM(d3.d8)
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
E1-2-3 совместимыйF
Как вы можете заметить,SQL*Calc также согласуется с 1-2-3 в вводе ана-
литических выражений.Вы пользуетесь теми же функциональными названиями (такие
как @SUM) и клавишами,и вы указываете на ячейки тем же способом.Фактически,по-
льзователям Lotus 1-2-3 не надо изучать ничего нового для того,чтобы выполнить
эти примеры на SQL*Calc.Пока все,что делалось в этой главе,идентично тому,как
вы бы делали это,используя 1-2-3.В следующей главе,однако,вы станете изучать
новое.Вы изучите,как пользоваться SQL*Calc для обеспечения доступа к БД ORACLE
непосредственно из вашей крупноформатной таблицы.Это позволит вам решать зада-
чи,которые трудно или невозможно решить используя Lotus 1-2-3.
+ EГЛАВА 3
ДОСТУП К БАЗЕ ДАННЫХF
В этой главе вы изучите,как можно использовать SQL*Calc,для управления
большим количеством данных непосредственно из своей крупноформатной таблицы.
Вы изучите как:
- получить список таблиц,хранящихся в БД ORACLE
- переносить данные из таблицы ORACLE,
- добавлять значения в столбцы таблиц ORACLE
EФундаментальные проблемы крупноформатной таблицы:F
В процессе чтения вы увидите,как SQL*Calc помогает решить 3 наиболее
серьезные проблемы,с которыми сталкиваются пользователи крупноформатных таблиц:
EОчень много данныхF
Крупноформатные таблицы так увеличиваются в размере,что превосходят во-
зможности машинной памяти - даже используя такую память,как Intel Above Board.
EОчень большая сложностьF
Крупноформатные таблицы столь возрастают по сложности,что превосходят
возможности человеческой памяти и человеческого понимания.
EОчень медленно считаетF
Крупноформатные таблицы столь огромны и сложны,что программам крупнофо-
рматных таблиц требуется очень много времени для пересчета аналитических выра-
жений,при изменении значений в них.
EСТРУКТУРА БАЗЫ ДАННЫХ ORACLEF
В предидущей главе,вы ввели информацию прогноза продажи в свою крупно-
форматную таблицу SQL*Calc.Теперь давайте сравним эту информацию прогноза с
вашими реальными результатами продажи.Реальные данные хранятся в таблице в
БД ORACLE.
EТаблицыF
Все данные в БД ORACLE хранятся в таблицах,постоянно находящихся на ва-
шем диске.Вы уже видели один пример таблицы,когда вводили строки и столбци ин-
формации прогноза в свою крупноформатную таблицу.Эта информация воспроизведена
здесь для вашего удобства.Давайте назовем эту таблицу таблицей REGION.
Region HQ Manager Forecast
--------------------------------------
East New-York Owens $10.500.000
Central Chieago Parker $ 6.400.000
West Los Ang.Green $ 3.500.000
Asia Tokeo Okura $ 9.700.000
Europe AmsterdamJansen $13.700.000
EСтолбцы и строкиF
Таблица состоит из столбцов (вертикальных рядов) и строк (горизонталь-
ных рядов) Таблица REGION имеет 4 столбца (названных REGION,HQ,MANAGER и FORE-
CAST) и 5 строк (для REGION: East,Central,West,Asia и Europe).
EЗначения данныхF
Строки содержат значения данных,хранящихся в каждом
столбце.Например,первая строка в таблице REGION имеет:
- значение East,хранящееся в столбце REGION;
- значение New-York,хранящееся в столбце HQ;
- значение Owens,хранящееся в столбце Manager;
- значение $10.500.000,хранящееся в столбце Forecast.
EБаза данных ORACLEF
Обычно имеется не одна таблица для того,чтобы хранить всю информацию,
которую вы хотите поместить в компьютер.ORACLE позволит вам создать столько
таблиц,сколько нужно.Собранные вместе,все таблицы,хранящиеся в ORACLE,созда-
ют БД.
EОтображение на дисплее списка таблиц БД ORACLEF
EСписок таблиц в БДF
Чтобы узнать названия таблиц БД,к которым вы имеете доступ:
# Нажмите EF (-клавиша на IBM PC) и на экране вашей
крупноформатной таблицы появится список таблиц ORACLE.
1 Press any key to return to the worksheet
2 EMP
DEPT
SALGRADE
SALES
SALES1
SALES2
FALL5
QUOTA
0% USED,D9(Formula)=SUM(d3.d8)
1-Нажмите любую клавишу,чтобы вернуться в рабочий режим
2-Список таблиц
Как вы можите заметить,в БД находится несколько таблиц.Одна из таблиц в
списке,таблица SALES,содержит данные,которые нам нужно посмотреть и с которыми
надо работать в нашей крупноформатной таблице (вы увидите,как эти таблицы по-
лучены в главе 4).Теперь давайте перенесем данные из таблицы SALES в ячейки на
нашей крупноформатной таблице SQL*Calc.
EВВОД SQL КОМАНДЫ ПЕРЕНОСА ДАННЫХ F
Чтобы перенести информацию из таблицы в БД ORACLE,вы введете SQL-коман-
ду в ячейку на своей крупноформатной таблице.
Но сперва давайте очистим наш экран от списка таблиц БД и востановим на
экране нашу крупноформатную таблицу:
# Нажмите EF ( на клавиатуре IBM PC)
1
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
3East New-York Owens E 10500000 F
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 E43800000F
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,D9(Formula)=SUM(d3.d8)
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
1-Востановленная на дисплее крупноформатная таблица
Теперь введем SQL-команду в ячейку A11:
# Нажмите EF и нажмите Ea11 F для перехода в A11,еще неисполь-
зованную ячейку.
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
3East New-York Owens 10500000
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
1 11
12
13
14
15
16
17
18
19
20
21
0% USED,A11(Blank)
2Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
1-Текущая ячейка A11
2-Начните SQL-команду с $
ESQL команда начинается с $F
Строка подсказки напоминает вам,что команды в SQL начинаются с символа
"знак доллара" ($).
# Нажмите E$F
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
3East New-York Owens 10500000
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,A11(Blank)
1TYPE SQL STATEMENT.Press ENTER to execute it.Use $ before pointing.
2$
1-Подсказка SQL
(Напишите оператор SQL.Нажмите ENTER для его выполнения.Перед оператором
используйте $.)
2-Пользователь вводит SQL команду
$ показывает,что вы начинаете писать SQL-команду,так же как + и @ означают,
что вы начинаете писать аналитическое выражение.
EКоманда SELECTF
SQL команда,которой вы пользуетесь для переноса данных из БД в свою
крупноформатную таблицу,называется командой SELECT.(Вы узнаете и другие кома-
нды,используемые для добавления и модификации данных,в главах 4 и 5.)
Давайте перенесем все данные из таблицы SALES в нашу крупноформатную таблицу.
ESELECTF
# Введите select*from sales,но не нажимайте .
TYPE SQL STATEMENT.Press ENTER to execute it.Use $ before pointing.
$select*from sales
*(звездочка) в команде SELECT означает,что SQL*Calc перенесет все строки и
все столбцы данных из таблицы SALES в крупноформатную таблицу (так же как
*.* означает все файлы в PC DOS).
EВЫПОЛНЕНИЕ SQL КОМАНДЫF
Чтобы выполнилась команда SELECT
# Нажмите EF
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
3East New-York Owens 10500000
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
1 11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12
13
14
15
16
17
18
19
20
21
2OVERFLOW: 50 EXTRA ROWS.EInsertF Owerwrite Stop.
3Insert enought rows to hold the overflow data.
1-Перенесены названия столбцов
(компания регион месяц продукция количество цена)
2-Переполнение: 50 дополнительных строк.Вставка Перезапись Останов.
3-Вставьте достаточное количество строк,чтобы хранить данные переполнения.
EНазвания столбцовF
Первое что делает SQL*Calc,это размещение названий столбцов
(COMPANY REGION MORTH PRODUST QUANTITY PRICT)
из таблицы SALES в ячейках с A11 по F11 крупноформатной таблицы.В это же время
SQL*Calc выведет на дисплей,в меню OVERFLOW количество строк (в этом случае
50),которые надо перенести из таблицы SALES.Меню OVERFLOW позволит вам управ-
лять последующими действиями SQL*Calc над этими 50 строками.
EМеню OVERFLOWF
Меню OVERFLOW представляет собой меню типа Lotus.Высвечено его первое
предложение - Insert и ниже,строка описывает эту команду.Давайте выберем опцию
Insert,чтобы расказать как SQL*Calc вставит 50 строк данных в нашу крупнофор-
матную таблицу.
EОпция вставкиF
# Нажмите EF или введите EiF для выбора опции INSERT.
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
3East New-York Owens 10500000
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokeo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
11ECOMPANYF REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14C Itoh & Asia 31-JAN-8 Mainfram 7 6400000
1. 15R J Revn East 30-SEP-8 Mini-B 2 330000
16K Mart Central 31-MAY-8 Mini-B 9 1485000
17W R Grac East 31-OCT-8 Micro 10 32250
18U S WEST West 31-OCT-8 Mini-A 6 134850
19S&W Beri Europe 30-SEP-8 Micro 7 22575
20BASF Gro Europe 31-JAN-8 Mini-B 5 825000
21BAT Indu Europe 31-JAN-8 Mini-B 3 495000
4% USED,A11(SQL,A,A)=select * into &a11.f61 from sales
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
1-Перенесены строки данных
SQL*Calc автоматически перенесет все 50 строк из таблицы
SALES и разместит их в крупноформатной таблице прямо под заголовками стлолбцов.
На этом экране показаны не все 50 строк данных.Посмотрим следующую страницу
крупноформатной таблицы SQL*Calc,содержащую следующие данные таблицы SALES.
# Нажмите EF (EF-на цифровой клавиатуре IBM PC)
...
A B C D E F G H
E22 IBMF East 31-MAY-8 Mainfram 1 1000000
23 RCA East 30-SEP-8 Mini-A 8 179800
24 VEBA Gro Europe 31-OCT-8 Mini-B 10 1650000
25 OIAG Europe 31-JUL-8 Mini-A 2 44950
26 CIBA-GET Europe 31-JAN-8 Micro 3 9675
27 CIGNA East 31-JAN-8 Mini-B 5 825000
28 SNCF Europe 30-SEP-8 Mini-A 6 134850
29 ENEL Europe 31-MAR-8 Mini-B 9 1485000
30 INH-Inst Europe 31-MAY-8 Mini-A 1 22475
31 INI Grou Europe 31-MAY-8 Mini-B 1 165000
32 ENI-Ente Europe 31-MAR-8 Mini-B 7 1155000
33 TOTAL Gr Europe 31-OCT-8 Mini-B 5 1320000
34 IRI-Isti East 31-MAY-8 Mainfram 4 4000000
35 PTT-Post Asia 31-JAN-8 Mainfram 7 6400000
1. 36 NV DNS East 30-SEP-8 Mini-B 2 330000
37 NV Nider Central 31-MAY-8 Mini-B 9 1485000
38 NV Phile East 31-OCT-8 Micro 10 32250
39 RWE Grou West 31-OCT-8 Mini-A 6 134850
40 Pasific Europe 30-SEP-8 Micro 7 22575
41 Pasific Europe 31-JAN-8 Mini-B 5 825000
42 Daewoo G Asia 31-MAR-8 Micro 8 25800
4% USED,A22(Text)=IBM
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
1-Следующие данные таблицы SALES
В нашей крупноформатной таблице показана следующая группа строк данных из
таблицы SALES.
EАвтоматический перенос данныхF
Только что,мы видели,как SQL*Calc переносит данные из БД ORACLE и раз-
мещает эти данные в ячейки крупноформатной таблицы автоматически в один шаг.
EШаги,требуемые для переноса данных из dBASE 2 в крупноформатную таблицуF
Сравним этот простой процесс с некоторыми шагами,которые нам надо
сделать для переноса данных из БД dBASE 2 в крупноформатную таблицу 1-2-3.Шаги
будут следующие:
- выйти из 1-2-3;стартовать dBASE 2;
- решить,какие данные из БД мы хотим взять;
- создать новый файл БД с этими данными;
- перенести файл dBASE 2 в файл WKS;
- войти в 1-2-3;
- загрузить рабочий бланк,с которым вы хотите соединить данные;
- создать область на рабочем бланке для данных;
- разместить курсор в верхнем левом углу области;
- и,наконец,загрузить в WKS файл с данными dBASE 2.
EИнтеграция с БД сделает SQL*Calc эффективным и легким для пользованияF
В следствие скуки и сложности этого процесса переноса данных большинст-
во пользователей до сих пор вводят данные в свои крупноформатные таблицы вруч-
ную.Но теперь есть крупноформатные таблицы,об'единенные с системой управления
реляционной БД.Именно эта интеграция дает возможность SQL*Calc осуществлять
автоматический перенос данных,так эффективно и легко для пользователя.
EПЕРЕНОС СТРОК СПЕЦИФИКАЦИИ ИЗ ТАБЛИЦЫ ORACLEF
EТаблицы большие,чем крупноформатная таблицаF
Таблица SALES,используемая в примерах этой брошюры,содержит 50 строк и
легко размещается в крупноформатной таблице.Но что если бы таблица SALES имела
больше строк,чем можно разместить в одной крупноформатной таблице? Крупнофор-
матные таблицы и SQL*Calc,и 1-2-3 имеют абсолютный предел 8192 строки,даже с
INTEL Above Board памятью.Этого места не достаточно,чтобы хранить все данные,
которые реальный бизнес может иметь в течение года - или все какие бы то ни
было виды информации,которые потребуются вам для помощи в управлении.
Однако,как мы видели,ESQL*CalcF имеет способность легко перемещать
данные туда и обратно между БД и крупноформатной таблицей.Lotus 1-2-3 этого не
делает.И т.к.БД ORACLE хранится на диске,можно хранить десятки тысяч - или да-
же сотни тысяч строк данных.В противоположность этому,крупноформатная таблица
такая,как 1-2-3,может иметь только несколько тысяч строк.В этом случае необхо-
димо разделить данные на многочисленные крупноформатные таблицы (которые вызы-
вают другие проблемы,как мы увидим в главах 5 и 6)
Итак,что вам делать если в таблице SALES содержится больше информации
о работе аукциона,чем можно разместить в одной крупноформатной таблице? Одна
альтернатива состоит в переносе данных об одном регионе каждый раз.Этот подход
сокращает количество переносимых данных,так что все разместится в вашей круп-
ноформатной таблице.Давайте попробуем это решение первым.
--------------
+Lotus 1-2-3(версия 1A) имеет теоритический максимум 2048 строк.Lotus
1-2-3(версия 2) имеет теоретический максимум 8192 и предел на практике
около 80 000 ячеек,или крупно форматную таблицу из 10 столбцов по 8000
строк,даже с использованием памяти Intel Above Board.
# Нажмите EF(EF на цифровой клавиатуре IBM PC),чтобы вер-
нутся к началу крупноформатной таблицы
...
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
3East New-York Owens 10500000
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
11ECOMPANYF REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14C Itoh & Asia 31-JAN-8 Mainfram 7 6400000
1. 15R J Revn East 30-SEP-8 Mini-B 2 330000
16K Mart Central 31-MAY-8 Mini-B 9 1485000
17W R Grac East 31-OCT-8 Micro 10 32250
18U S WEST West 31-OCT-8 Mini-A 6 134850
19S&W Beri Europe 30-SEP-8 Micro 7 22575
20BASF Gro Europe 31-JAN-8 Mini-B 5 825000
21BAT Indu Europe 31-JAN-8 Mini-B 3 495000
4% USED,A1(Text)=REGION
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
1-Начало крупноформатной таблицы
EПеренос строк спецификации данныхF
В дополнение ко всему сказанному о нашей последней SQL команде,давайте
перенесем информацию только о восточном регионе (East).Т.е.используя SQL,мы
перенесем только те строки из таблицы SALES,в которых значение в столбце
REGION представляет собой слово EAST.
Чтобы сделать это,изменим текущую SQL команду:
# Введите E a11 F для перехода в ячейку A11.
# Нажмите EF
Изменятся строки подсказки и ввода:
1.EDIT: Use arrow keys,HOME,END,INSERT and DELETE.Press ENTER when done..
2.$selest * into &a11.f61 from sales
1-Строка подсказки
2-Строка ввода
Заметим,что SQL*Calc автоматически определяет ряд ячеек (т.е.от A11 до
F61),в котором наша последняя команда SELECT разместила данные о продаже на
нашей крупноформатной таблице (into &a11.f61).(Вы можете так же сами ввести
оператор Into команды SELECT для осуществления гибкого управления местом раз-
мещения SQL*Calc данных на вашей крупноформатной таблице.)
# Нажмите EF и введите Ewhere region = 'East'F в конце команды
SELECT,но не нажимайте .Убедитесь в том,что написали 'East' и заклю-
чили это слово в апострофы (').
EDIT: Use arrow keys,HOME,END,INSERT and DELETE.Press ENTER when done..
1.$selest * into &a11.f61 from sales where region='East'
1-добавили WHERE
EОператор WHEREF
Оператор WHERE сообщает,что ORACLE должен искать данные в таблице и пе-
ренести только те строки,в которых содержится определенное вами условие поис-
ка.В этом случае,вы хотите,чтобы ORACLE перенес из таблицы SALES только те ст-
роки,где значение в столбце REGION эквивалентно East(where region='East')
# Теперь нажмите EF
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
3East New-York Owens 10500000
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
11ECOMPANYF REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
1. 15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
2. 20
21
4% USED,A11(SQL,A,A)=selest * into &a11.f61 from sales
3.UNDERFLOW: 42 FEWER ROWS.EStopF Delete
Leave the unuset rows as they are
1-Строки только восточного региона
2-Дополнительные строки забиты пробелами
3-Индикация пустых строк (UNDERFLOW: 42 незначащие строки.Останов Стирание
Оставить неиспользованные строки такими,как есть)
SQL*Calc перенес 8 строк таблицы SALES,в которых столбец REGION содер-
жит значение EAST,и разместил их в нашей крупноформатной таблице.SQL*Calc ос-
тавил остальные 42 строки в нашей крупноформатной таблице чистыми,потому что
наша предыдущая команда SELECT,не включающая в себя оператор перенесла 50
строк.
EМеню UNDERFLOWF
В это же время меню UNDERFLOW в SQL*Calc спрашивает нас о том,что мы
хотим делать с неиспользованными и забитыми пробелами 42 строками.
1.UNDERFLOW: 42 FEWER ROWS.EStopF Delete
Leave the unuset rows as they are
1- Меню UNDERFLOW
# Нажмите EF для ввода опции STOP
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
3East New-York Owens 10500000
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
11ECOMPANYF REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
1. 20
21
2.4% USED,A11(SQL,A,A)=selest * into &a11.f61 from sales where region='East'
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
1-Дополнительные строки оставленны чистыми
2-В ячейке новая SQL команда
Опция STOP говорит,чтобы SQL*Calc оставил чистыми строки в крупноформа-
тной таблице,как раз такими какими они появились на экране.
E Использование @SUM для суммирования данных ORACLE,уже находя-
щихся в крупноформатной таблицеF
Теперь,когда вы перенесли реальные работы аукциона,вы можете сравнить
их с данными прогноза,введенными вами ранее.Общепринятый подход для представ-
ления это сравнения состоит в следующем использовании функции @SUM для суммиро-
вания значений в колонке PRICE (Цена) в нашей купноформатной таблице.
# Введите E f20 F,чтобы перейти в ячейку F20
# Введите E<\> <-> F,чтобы провести сплошную линию в ячейке F20
# Нажмите <стрелка вниз>,чтобы перейти в ячейку F21
# ВведитеE @SUM (f12-f20) F,чтобы сложить величины в
колонке PRICE для Восточного региона (Eart)
A B C D E F G H
1 REGION HQ MANAGER FORECAST
2--------------------------------------
3East New-York Owens 10500000
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
1. 21 E7874625F
1% USED,F21(Formula)=SUM(f12.f20)
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
Вы можете заметить,что реальная работа аукциона Восточного региона за
первые 10 месяцев составила 7.874.625 долларов (ячейка F21) по сравнению с
двенадцатимесячным прогнозом 10.500.000 долларов (ячейка D3).
EИспользование SELEKT SUM для суммированя данных ORACLE вне крупно-
форматной таблицыF
Функция @SUM требует,чтобы все значения данных,которые нужно просумми-
ровать,находились в крупноформатной таблице.Но что произойдет,если сам Восточ-
ный регион проделает такую большую комерческую деятельность,что крупноформат-
ная таблица не сможет разместить все записи работы аукциона?
Интеграция SQL*Calc с системой управления реляционной БД ORACLE дает
вам возможность перенести итоговую информацию непосредственно из БД,без проде-
лывания промежуточного шага переноса всей информации в крупноформатную табли-
цу,как мы делали в прошлом примере.
Чтобы сделать это,давайте сперва добавим новый столбец вверх нашей кру-
пноформатной таблицы,где мы можем поместить окончательные данные реальных ре-
зультатов работы аукциона.Давайте назовем этот новый столбец ACTUAJ (действи-
тельность)
# Введите E e1 F,чтобы перейти в ячейку Е1
# Введите EACTUAL F в ячейку Е1
# Введите E<стрелка вниз>F,чтобы пройти в ячейку Е2
# Введите E<\> <-> F,чтобы провести сплошную линию в ячейке Е2
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL
1. 2--------------------------------------E--------F
3East New-York Owens 10500000
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,E2(Repeating)=-
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
Теперь давайте просуммируем данные работы аукциона для Восточного реги-
она,используя небольшую вариацию уже известной нам команды SELECT.
# Нажmитие E<стрелка вниз>F,чтобы перейти в ячейку Е3
# Нажмите E<$>F для начала SQL-команды
# Введите Eselekt sum (price) from sales where rergion='East'F,но не нажи-
майте .(Снова убедитесь,что вы написали 'East',как показано здесь)
TYPE SQL STATEMENT.Press ENTER to execute it.Use & before pointing.
$select sum(price) from sales where region = 'East'
Вместо использования команды SELECT* для переноса всех столбцов и всех
строк данных,как мы делали в наших прежних примерах,в этот раз мы воспользуем-
ся функцикей SUM с названием столбца PRICE - для переноса итоговых данных из
БД.Теперь,чтобы получить сумму стоимости реализованного товара для Восточного
региона из БД:
# Нажмите EF
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL
2----------------------------------------------
1. 3East New-York Owens 10500000 7874625
4ECentralF Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
2.1% USED,E3(SQL,A,A)=selest sum(price) into &e3.e3 from sales where region=
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
Как вы можете заметить,команда БД SELEKT SUM возвращает тот же резуль-
тат,что и формула крупноформатной таблицы @SUM,которой мы пользовались в про-
шлом примере 7.874.625 ljkkfhjd,но не требует,чтобы мы сперва возвращали все
записи работы аукциона для Восточного региона в крупноформатную таблицу.
EКоманды SQL-формулы данныхF
Команда БД SELECT SUM очень похожа на формулу крупноформатной таблицы
@SUM.Команда SELECT SUM хранится как содержимое в ячейке Е3,в то время как
@SUM хранится как содержимое в ячейке F21.И SQL*Wle отражает на дисплее в каж-
дой ячейке результирующее значение и команды SELECT SUM и формулы @SUM.Из-за
их схожести с формулами крупноформатных таблиц,команды БД можно считать форму-
лами данных.
EКоманды SQL могут иметь доступ к сотням тысяч строкF
Основное преимущество команды SELECT SUM перед формулой @SUM в том,что
команда SQL может иметь доступ к данным,хранящимся на диске,а формула крупно-
форматной таблицы не может.Поэтому вы можете использовать команду SELECT SUM
для выполнения вычислений на сотнях тысяч строк,хранящихся в БД,а не только на
нескольких тысячах,помещенных в вашу крупноформатную таблицу.
EИспользование значений крупноформатной таблицы в команде SELECTF
Другой способ получения той же суммы состоит в подстановке
ссылок на ячейки вместо текста в командах SELECT.
EКоманда SELECT со ссылкой на ячейкуF
Давайте вместо значения 'East' в команды SELECT введем ссылку на ячейку
А3,которая включает в себя значение East.
# Перейдите в ячейку Е3,нажмите EF
Теперь мы можем увидеть команды SQL,хранящиеся в ячейке.
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL
2----------------------------------------------
3East New-York Owens 10500000 E7874625F
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,E3(SQL,A,A)=selest sum(price) into &e3.e3 from sales where region=
2.EDIT: Use arrow keys,HOME,END,INSERT and DELETE.Press ENTER when done..
3.$select sum(price) into &e3.e3 from sales where region = 'East'
# Нажмите EF шесть раз,чтобы стереть символы,оста-
вить единственный знак <=>
Теперь прочитайте то,что написано на строке ввода:
$ SELECT сумма PRICE в &e3.e3 из SALES где регион =
# Нажмите E<&>F и введите a3 (убедитесь в этом,как и прежде),
но не нажимайте
Теперь прочитайте,что написано на строке ввода:
$ SELECT сумма PRICE в &e3.e3 из SALES где регион = &a3
Этот просмотр нашей SQL - команды вызван тем,что SQL*Cale просуммирует
значения в столбце PRICE в БД для всех строк в таблице SALES,в которых столбец
REGION содержит значение в ячейки а3 (ячейка а3 в настоящий момент содержит
значение EAST).Использование &a3 для ссылки на значение ячейки в SQL - команде
называется ссылкой на ячейку.
# Нажмите для выполнения нашей SQL - команды
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL
2----------------------------------------------
3East New-York Owens 10500000 E7874625F
4Central Chicago Parker 6400000
5West Los Ang.Green 3500000
6Asia Tokyo Okura 9700000
7Europe AmsterdamJansen 13700000
8 -----------
9 43800000
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,E3(SQL,A,A)=selest sum(price) into &e3.e3 from sales where region=
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
Как вы и ожидали,появился тот же самый результат,что и прежде,7.874.625
доллара.Ранее мы говорили,что команды SELECT м.б. представлены как формулы да-
нных,потому что они похожи на формулы крупноформатных таблиц.SQL*Cale хранит и
команды SELECT,и формулы крупноформатных таблиц как содержимое: ячейки и кома-
нды SELECT и формулы появляются на дисплее в качестве результатирующей величи-
ны в своих ячейках; и те,и другие могут отсылаться к величинам других ячеек.
Т.к.пользователи крупноформатных таблиц привычны к формулам,они могут легче
изучить как пользоваться командами SQL SELECT.
E Копирование SQL - командой с сылкой на ячейкуF
E Копирование SQL - командой F
Но почему использовать ссылку на ячейку в SQL - команде лучше,чем тек-
ст,как в 'East' в последнем примере? Потому что,если вы хотите исходить из той
же самой SQL - команды,на многих разных строках данных в своей крупноформатной
таблице,например,если теперь мы хотим вычислить сумму,полученную в результате
работы аукциона,во вех регионах - вам надо только скопировать ту первоначаль-
ную SQL - команду для тех строк,данные которых вы хотите обработать.SQL*Calc
автоматически установит ссылки на ячейку в вашей SQL - команде.
Для копирования SQL - команды из ячейки Е3 ниже в ячеку Е4 по Е7:
# Введите E/СF для выбора команды E/COPYF
# Нажмите EF для копирования из текущей ячейки (Е3)
# Введите Eе4.е7 F для определения ряда ячеек,в которые мы хотим
скопировать нашу SQL - команду,E4 - E7
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL
2----------------------------------------------
3East New-York Owens 10500000 E7874625F
4Central Chicago Parker 6400000 *Copied*
5West Los Ang.Green 3500000 *Copied*
6Asia Tokyo Okura 9700000 *Copied*
7Europe AmsterdamJansen 13700000 *Copied*
8 -----------
9 43800000
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,E3(SQL,A,A)=selest sum(price) into &e3.e3 from sales where region=
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
Заметим,что SQL*Cale непосредственно не выполняет скопированные SQL -
команды,на дисплее не показано значение в каждой такой ячейке.Вместо этого
SQL*Calo показывает на дисплее слово *Copied* в каждой ячейке`
EВыполнение SQL - команд копированияF
Для выполнения SQL - команд в ячейках,показанных на дисплее как *Copied* :
# Нажмите E<*Copied*>F (EF на клавиатуре IBM PC)
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL
2----------------------------------------------
3East New-York Owens 10500000 E7874625F
4Central Chicago Parker 6400000 5820225
5West Los Ang.Green 3500000 2935500
6Asia Tokyo Okura 9700000 8362600
7Europe AmsterdamJansen 13700000 13230575
8 -----------
9 43800000
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,E3(SQL,A,A)=selest sum(price) into &e3.e3 from sales where region=
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
Теперь выполнены все скопированные SQL - команды,и сумма от проданной
продукции по каждому региону показана на дисплее в ячейках.
E Ссылки на ячейки установлены автоматическиF
Когда вы копировали SQL - команду Eselekt sum (price) from sales where
region = &a3F из ячейки Е3 в ячейку Е4,SQL*Calo переустановил предшествующую
ссылку на ячейку &a3 на &a4. Т.е.команда SELECT в ячейке Е4 теперь обращается
к ячейке &a4,которая содержит значение Central (центральный) (where region =
&a4).Также,команда SELECTd ячейке Е5 теперь обращается к ячейке &a5,которая
содержит значение West (Западный),E6 обращается к &a6 (Asia) и E7 - к &a7
(Europa).Т.к. SQL*Cale автоматически устанавливает ссылки на ячейки,вы должны
вводить только одну команду SELECT и затем копировать ее для вычисления сумм
по всем 5 регионам.
EПодход в Lotus 1-2-3F
Создать такой же отчет с использованием Lotus 1-2-3 было бы более труд-
но и потребовалось бы несколько шагов.Пользоваель 1-2-3 может ввести данные о
работе аукциона в отдельную крупноформатную таблицу для каждого региона и по-
том перенести эти данные для первого региона (East) в неиспользованную часть
крупноформатной таблицы; вычислить сумму в столбце PRICE bcgjkmpez @SUM; вруч-
ную ввести полученный результат в другую ячейку так,чтобы сумма не равнялась
нулю в следующем шаге; стереть данные н7а крупноформатной таблице для первого
региона; перенести данные о работе аукциона по следующему региону; вычислить
сумму в столбце PRICE и т.д.Решение задачи,с использованием Lotus 1-2-3 утоми-
тельно и требует много времени и ручного ввода сумм.
EРешение SQL*CaleF
С SQL*Cale та же самая задача много проще,потому что вы вводите только
одну команду SELECT,копируете ее в нужное колличество ячеек и нажимаете <*Co-
pied*> для выполнения скопированных команд SELECT.
Этот отчет является демонстрацией того,как вы можете пользоваться кома-
ндой SELECT в SQL*Cale с ссылками на ячейки,чтобы легко создавать отчеты,кото-
рые очень трудно или невозможно создать с 1-2-3.
E Вычисление разности между прогнозом и реальностьюF
Теперь,когда мы имеем и итоги прогноза,и реальные цыфры работы аукциона
по каждому региону,мы готовы сравнить их.Давайте выясним,как результаты работы
аукциона в течение первых 10 месяцев соотносятся с прогнозом на целый год.
Сперва давайте найдем сумму значений в столбце ACTUAL:
# Введите E e8 F
# Введите E<\> <-> F
# Введите E@SUM (e3.e8) F
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL
2----------------------------------------------
3East New-York Owens 10500000 E7874625F
4Central Chicago Parker 6400000 5820225
5West Los Ang.Green 3500000 2935500
6Asia Tokyo Okura 9700000 8362600
7Europe AmsterdamJansen 13700000 13230575
8 --------- ---------
1 9 43800000 38223525
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,E9(Formula)=SUM(e3.e8)
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
Сумма реальной работы аукциона - 38.223.525 долларов.
EДобавьте столбец VARIENCYF
Теперь давайте добавим столбец под названием VARIENCY (разность) в нашу
крупноформатную таблицу,чтобы показать на дисплее разницу между прогнозом и
реальными цифрами.Чтобы добавить столбец,создадим заголовок для нового столбца:
# Введите E f1 F
# Напишите EVARIANCE <стрелка вниз>F
# Введите E<\> <-> F
# Нажмите E<стрелка вниз>F для перехода к ячейке F3
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2------------------------------------------------------
3East New-York Owens 10500000 7874625
4Central Chicago Parker 6400000 5820225
5West Los Ang.Green 3500000 2935500
6Asia Tokyo Okura 9700000 8362600
7Europe AmsterdamJansen 13700000 13230575
8 --------- ---------
1 9 43800000 38223525
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,F3(Blank)
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
Теперь давайте вычтем значение в ячейке D3 из значения в ячейке E3,т.е.
вычтем прогнозируемый результат из полученного в действительности для восточ-
ного региона.Укажите на значения в ячейках так же,как и в 1-2-3.
E Постройте формулу F
# Введите E<+> <стрелка влево> <->F
Строка ввода выглядит следующим образом:
TYPE FORMULA.Press arrow key or ENTER when done
+e3-
# Нажмите E<стрелка влево>F,чтобы перейти в точку D3 и нажмите
EF,чтобы поместить формулу +e3-d3 в ячейку F3
Теперь давайте скопируем эту же самую формулу в ячейки,расположенные
ниже,для остальных регионов:
Скопируйте формулу
# ВведитеE /cF для команды /Copy
# Нажмите EF для копирования из F3
# Введите Ef4.f7 F для определения интервала в который
вы хотите перекопировать нашу формулу,c F4 по F7
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2------------------------------------------------------
3East New-York Owens 10500000 7874625 -2625375
4Central Chicago Parker 6400000 5820225 -579775
5West Los Ang.Green 3500000 2935500 -564500
6Asia Tokyo Okura 9700000 8362600 -1337400
7Europe AmsterdamJansen 13700000 13230575 -469425
8 --------- ---------
1 9 43800000 38223525
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,F3(Formula)=e3-d3
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
Результаты показаны на нашей крупноформатной таблице в столбце VARIANCE.
E SQL*CaleF
Используя SQL*Cale,теперь вы расширили отчет,что очень трудно сделать
пользуясь 1-2-3.Чтобы вы могли использовать этуже методику SQL*Cale,вы изучили
как легко создавать различное количество других отчетов.Распределение этих ци-
фр о работе аукциона далее - по месяцам и по покупателям для анализа тенден-
ции,например: является также легкой задачей с использованием SQL*Cale.
+ EГЛАВА4
ДОБАВЛЕНИЕ НОВОЙ ТАБЛИЦЫ В БАЗУ ДАННЫХ ORACLEF
Теперь предположим,что вы хотите перекопировать прогнозируемую информа-
цию из нашей крупноформатной таблицы в другую крупноформатную таблицу.Другими
словами,вы хотите распределить прогнозируемые данные между двумя (или более)
крупноформатными таблицами.SQL*Calc предлагает уникальный и эффективный подход
к распределению данных.
SQL*Calc позволяет вам взять данные из вашей текущей крупноформатной
таблицы и поместить их в новую таблицу в БД ORACLE.Т.к.данные хранятся в таб-
лице ORACLE,вы можете легко перенести их в другую крупноформатную таблицу.Эта
уникальная возможность не только делает легким распределение данных среди кру-
пноформатных таблиц,но также помогает хранить данные во всех совместимых круп-
ноформатных таблицах,т.к.таблица ORACLE играет роль источника данных для всех
крупноформатных таблиц.
EСоздание таблицы БДF
Чтобы создать таблицу в БД ORACLE,воспользуйтесь командой /Oracle Table.
Давайте создадим новую таблицу под названием REGION,в которой мы будем
хранить наши данные прогноза по всем 5 регионам.
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2------------------------------------------------------
1 3East New-York Owens 10500000 7874625 -2625375
4Central Chicago Parker 6400000 5820225 -579775
5West Los Ang.Green 3500000 2935500 -564500
6Asia Tokyo Okura 9700000 8362600 -1337400
7Europe AmsterdamJansen 13700000 13230575 -469425
8 --------- ---------
9 43800000 38223525
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 vvvvvvvvvvvv ----------
21 vvvvvvvvvvvvv 7874625
1% USED,F3(Formula)=e3-d3
Press HELP (F1) any time.(Begin SQL with $,formula with +,command with /.).
1 - Таблица,хранящаяся в БД ORACLE
E Команда /Oracle F
# ВведитеE /o для команды /Oracle F
Строки подсказки и ввода теперь выглядят следующим образом:
1. ORACLE: Execute Show-nfo Logon Commit Rollback Options Table
Execute Select,Update,Insert,Delete or Lock statements; or *Copied* cells
1 - Меню ORACLE
Это меню ORACLE,из которого вы можете выполнить несколько функций.
EКоманды Oracle TableF
# Нажмите E<стрелка вправо>F 6 раз,чтобы вывести Table и нажмите EF
Строки подсказки и ввода теперь выглядят следующим образом:
1. Enter name of ORACLE TABLE to be created (1-30 chars)
2
1 - Запрошено имя таблицы
2 - Здесь вводится имя таблицы
SQL*Calc запрашивает,какое имя таблицы мы вводим.
# ВведитеE region F для имени таблицы.
Теперь SQL*Calc подсказывает:
1.Enter range containing ORACLE COLUMN for the new table (eп A1.D1)
2
1 - Запрошены имена столбцов
2 - Здесь вводите ряд ячеек
# Напишите Ea1.d1 F для ряда,содержащего имена столбцов которые мы
хотим включить в нашу таблицу REGION (т.е.REGION,HQ,MANAGER,FORECAST)
A B C D E F G H
1. 1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2------------------------------------------------------
2. 3East New-York Owens 10500000 7874625 -2625375
4Central Chicago Parker 6400000 5820225 -579775
5West Los Ang.Green 3500000 2935500 -564500
6Asia Tokyo Okura 9700000 8362600 -1337400
7Europe AmsterdamJansen 13700000 13230575 -469425
8 --------- ---------
9 43800000 38223525
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,F3(Formula)=e3-d3
Enter range containing DATA for the new table (e.g.A2 D20)
1 - Имена столбцов
2 - Данные для таблицы REGION
Теперь мы определяем ряд ячеек,включающих в себя данные,
которые мы хотим хранить в нашей таблице.
# Напишите Ea3.d7 F,что является рядом,данные которого мы хотим
занести в таблицу (4 столбца и 5строк)
ESQL*Calc автоматически создает таблицуF
Это все,что вы делаете.Теперь SQL*Calc создает новую таблицу REGION,ис-
пользуя имена столбцов значения в каждой из ячеек ряда данных,которые вы опре-
делили.(Т.к.SQL*Calc использует значения в ячейках,эти ячейки могут содержать
формулы или даже команды SELECT,которые показаны на дисплее как значения).
Во время создания таблицы - на это требуется несколько секунд - мы уви-
дим это сообщение на строке ввода:
1. Creating table region
1 - Сообщение во время создания
Когда таблица будет создана,вы увидите:
1. 1% USED,Table created and data inserted
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /)
Но ваш экран пока еще выглядит таким:
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2------------------------------------------------------
3East New-York Owens 10500000 7874625 -2625375
1. 4Central Chicago Parker 6400000 5820225 -579775
5West Los Ang.Green 3500000 2935500 -564500
6Asia Tokyo Okura 9700000 8362600 -1337400
7Europe AmsterdamJansen 13700000 13230575 -469425
8 --------- ---------
9 43800000 38223525
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,Table created and data inserted
Press HELD (F1) any time.(Begin SQL with $,formula with+.command with/).
1 - На крупноформатной таблице изменений нет
SQL*Calc cоздал новую таблицу БД,используя имена столбцов,определенные
вами в ряде ячеек крупноформатной таблицы,автоматически определил типы данных
в столбцах - текст,числа или данные - например,данные в крупноформатной табли-
це,и автоматически поместил данные крупноформатной таблицы в эту таблицу.
Чтобы проверить,что новая таблица находится в БД,посмотрите список таб-
лиц снова.
EНовый список таблицF
# Нажмите EF
Press any key to return to the worksheet
EMP
DEPT
BONUS
SALGRADE
SALES
SALES1
SALES2
FALL5
QUOTA
1 REGION
1% USED,Table created and data inserted
1 - Новая таблица REGION
Как вы можете заметить,новая таблица,названная REGION,находится в БД.
Мы знаем,что таблица REGION находится в БД ORACLE; теперь давайте убе-
димся,что данные прогноза хранятся в таблице REGION точно также.
# Нажмите EF,чтобы стереть список таблиц и восстановить
на экране крупноформатную таблицу,как было ранее
EУничтожение информацииF
Давайте очистим ряд ячеек,в которых расположены данные прогноза,на кру-
пноформатной таблице так,чтобы мы могли перенести данные из таблицы REGION для
восстановления нашей крупноформатной таблицы в ее первоначальном состоянии.
# Введите E/r для команды /RangeF
На строках подсказки и ввода теперь можно прочитать:
1.RANGE: Erase Name Sort Protest Unprotest
Erase a cell or range of cells
1 - Меню RANGE
# Напишите EeF для "очищения" ряда ячеек
На строке подсказки теперь можно прочитать:
1. Enter name to ERASE (ENTER to erase current cell)
1 - Подсказка RANGE ERASE
# Напишите Ea3.d7 F,чтобы определить ряд ячеек,данные
которых мы хотим стереть,с A3 по D7 (также как и в 1-2-3)
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2------------------------------------------------------
1 3 7874625 7874625
4 5820225 5820225
5 2935500 2935500
6 8362600 8362600
7 13230575 13230575
8 --------- ---------
9 0 38223525
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,A3 (Blank)
Press HELD (F1) any time.(Begin SQL with $,formula with+.command with/)
1 - Ряд очищен
Теперь данные прогноза уничтожены в нашей крупноформатной таблице.
Чтобы восстановить данные прогноза,давайте организуем доступ к БД.
EСписок столбцов SELECTF
# В ячейке A3 введите E$select region,hd,manager,forecast from regionF,но
не нажимайте
1.OVERFLOW: 4 EXTRA POWS.Insert Overwrite Stop
Insert enough rows to hold the overflow data
1 - Введите список столбцов
Отличие между введением списка названий столбцов БД в команде SELECT и
использованием команды SELECT *,как мы делали прежде,состоит в следующем: ког-
да вы вводите названия столбцов,SQL*Calc разрешает вам определять свои собст-
венные заголовки столбцов крупноформатной таблицы,вместо предоставления их
вам.В этом случае,заголовки столбцов были уже в строке 1 крупноформатной таб-
лицы,поэтому мы не хотим,чтобы SQL*Calc переносил заголовки второй раз.
# Нажмите EF,чтобы дать сигнал начала переноса данных,
которые вы запросили для SQL*Calc
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2------------------------------------------------------
1 3East New York Owens 10500000 7874625 -2625375
4 5820225 5820225
5 2935500 2935500
6 8362600 8362600
7 13230575 13230575
8 --------- ---------
9 0 38223525
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,A3 (Blank)
2.OVERLOW: 4 EXTRA ROWS.Insert Overwrite Stop
Insert enough rows to hold the overflow data
1 - Перенесена первая строка
2 - Меню OWERFLOW
SQL*Calc поместил первую перенесенную строку (East New York,Owens,
10500000) в крупноформатную таблицу,т.к.места достаточно,т.е. достаточно яче-
ек.(Иначе,SQL*Calc сделал вам запрос,что делать).
В то время как SQL*Calc размещает первую строку в крупноформатной таб-
лице,меню SQL*Calc OVERFLOW высвечивает на экране количество дополнительных
строк 4 EXTRA ROWS,которое перенесено из таблицы REGION,но еще не размещено в
крупноформатной таблице.
1.OVERFLOW: 4 EXTRA POWS.Insert Overwrite Stop
Insert enough rows to hold the overflow data
1 - Место OVERFLOW
Мы хотим разместить дополнительные 4 строки данных в пустом пространст-
ве с 4-ой по 7-ю строки крупноформатной таблицы.Выбор опции INSERT дает возмо-
жность SQL*Calc создать 4 новых строки между уже существующими строками 3 и 4
крупноформатной таблицы.
EОпция OVERWRITEF
Итак,давайте выберем опцию OVERWRITE для перезаписи - или заполнения
пустых ячеек в строках с 4 по 7 данными,перенесенными из таблицы REGION.
# ВведитеE O для OVERWRITEF
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2------------------------------------------------------
3East New-York Owens 10500000 7874625 -2625375
4Central Chicago Parker 6400000 5820225 -579775
1 5West Los Ang.Green 3500000 2935500 -564500
6Asia Tokyo Okura 9700000 8362600 -1337400
7Europe AmsterdamJansen 13700000 13230575 -469425
8 --------- ---------
9 43800000 38223525
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,A3(SQL,A,A)=select region,hd,manager,forecast into &a3.d7 from r
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Данные восстанавливаются в пустых ячейках
Теперь данные прогноза перенесены из БД ORACLE и размещены в нашей крупнофор-
матной таблице.
Сохранение крупноформатной таблицы
Теперь давайте сохраним нашу текущую крупноформатную таблицу для более
позднего использования.
EКоманда /FileF
# Введите E/fF для команды /FileE (как и в 1-2-3)
На строках подсказки и ввода читаем:
1.FILE: Retrieve Save Link Merge Utilities
Retrieve a saved worksheet hle
1 - Меню FILE
EОпция SAVEF
# Введите ESF для SAVE
На строке подсказки читаем:
1. Enter name of worksheet to SAVE to FILE.Press NAME (F3) for listing ..
2
1 - Подсказка для имени
2 - Здесь введите имя файла
Теперь мы должны дать нашему файлу с крупноформатной табли-
цей имя.Давайте назовем его report.
# Введите Ereport F в качестве имени файла
Теперь на строках подсказки и ввода читаем:
1. FILE SAVE: All Values-onli
Save all information about the worksheet
1 - Подсказка для хранения вех данных
# Нажмите Ea или F для хранения всей информации о крупноформатной
таблице.(Формулы,команды SQL,значения данных и т.д.)
Как только SQK*Calc сделает запись файла с крупноформатной таблицей на
вашем жестком диске,на экране появится следующее сообщение в строке состояния:
1.1% USED,File operation completed
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Сообщение,когда файл отправлен на хранение
EОчистка крупноформатной таблицыF
Теперь,когда мы обеспечили хранение нашей крупноформатной таблицы,дава-
йте сотрем все так,чтобы можно было построить второй отчет.
# Введите E/W для команды /WorksheetF
Теперь на строках подсказки и ввода читаем:
1.WRRKSHEET: Options Insert Delete Move Erase Title Window
Set options for the entire worksheet
1 - Меню WORSHEET
# Введите EeF для очистки рабочей таблицы
Строка подсказки теперь покажет меню WORKSHEET ERASE:
1.WRRKSHEET ERASE? No Yes
1 - Меню WORKSHEET ERASE
# Напишите EYF для подтверждения того,что мы хотим очистить
нашу крупноформатную таблицу (как и в 1-2-3).
A B C D E F G H
1
2
3
4
1 5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,A1(Blank)
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Крупноформатная таблица пуста
Наша крупноформатная таблица очищена.
Поиск данных для второго отчета
Теперь давайте построим вторую крупноформатную таблицу,используя дан-
ные,хранящиеся в таблицах REGION и SAVES в нашей БД ORACLE.
Сперва давайте перенесем данные прогноза из таблицы REGION в нашу круп-
ноформатную таблицу.
ESELECT*from REGIONF
# Введите E$select*from region и нажмите F для выполнения команды
SELECT
SQL*Calc перенесет заголовки столбцов из таблицы REGION и
покажет на дисплее меню OVERFLOW:
A B C D E F G H
1. 1REGION HQ MANAGER FORECAST
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,A1(Blank)
2.OVERFFLOW: 5 EXTRA ROWS.Insert Overwrite Stop
Insert enough rows to hold the overflow data
1 - Перенесены заголовки столбцов
2 - Меню OVERFLOW
В этот раз,т.к.в нашей крупноформатной таблице нет данных,выбор опции
Insert вместо Overwrite для размещения данных,перенесенных из таблицы REGION в
нашу крупноформатную таблицу,не вызовет никаких проблем.
# Нажмите E для выбора INSERTF
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2East New-York Owens 10500000
1 3Central Chicago Parker 6400000
4West Los Ang.Green 3500000
5Asia Tokyo Okura 9700000
6Europe AmsterdamJansen 13700000
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2.0% USED,A1(SQL,A,A)=select * info &a1.d6 from region
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Перенесены данные из REGION
2 - В A1 команда SELECT
SQL*Calc перенес все 5 строк данных прогноза из таблицы REGION и помес-
тил их в ячейки нашей новой крупноформатной таблицы.
Теперь давайте перенесем реальные результаты работы аукциона по регио-
нам из таблицы SAVES и поместим их в нашей крупноформатной таблице в новом
столбце под названием actual.
# Введите E e1 F
# Введите EACTUAL <стрелка вниз>F,чтобы разместить заголовок
нового столбца в E1 и передвинуться в ячейку E1
# Введите E$select sum (price) from saves where region = &F,но
не нажимайте
EПеремещение в ячейку A2F
# Нажмите E<стрека влево>F четыре раза для перемещения в ячейку A2
# Нажмите EF и заметьте,что a2 появляется после <&>
(знак амперсенда) на строке ввода
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
1 2East New-York Owens 10500000
3Central Chicago Parker 6400000
4West Los Ang.Green 3500000
5Asia Tokyo Okura 9700000
6Europe AmsterdamJansen 13700000
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,A2(Text)=East
TYPE SQL STATEMENT.Press ENTER to execute it.Use & before pointing.
2.$select sum(price) form sales where region = &a2
1 - Пользователь переместился в ячейку A2
2 - SQL - команда ссылается на a2
Этот пример демонстрирует,что вы можете попасть в ячейки с помощью SQL
- команды,также как вы можете попасть в ячейки с помощью формул,как вы изучали
в Главе 2.
# Нажмите EF для выполнения SQL - команды
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
1 2East New-York Owens 10500000 7874625
3Central Chicago Parker 6400000
4West Los Ang.Green 3500000
5Asia Tokyo Okura 9700000
6Europe AmsterdamJansen 13700000
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,E2(SQL,A,A)=select sum(price)into &e2.e2 from sales where region=
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - SELECT SUM (PRICE)
Теперь вы видите реальные результаты работы аукциона для
Восточного региона: 7.874.625 долларов,как вычислил ORACLE.
Теперь,следующими шагами,которые вы изучили ранее,скопируйте эту SQL -
команду в четыре ячейки,расположенные ниже E2,которые автоматически устанав-
ливаются ссылкой на ячейки Centrel,West,Asia и Europe,соответственно.
# Введите E/cF для команды /Copy
# Нажмите EF,чтобы скопировать из текущей ячейки (E2)
# Введите Ee3.e6 F,чтобы определить интервал ячеек в
которые вы хотите скопировать свою SQL - команду,с E3 по E6
Каждая ячейка показана на дисплее как *Copied*.
# Нажмите E<*Copied*>F,чтобы дать сигнал SQL*Calc выполнить все
SQL - команды,которые вы только что скопировали
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2East New-York Owens 10500000 7874625
3Central Chicago Parker 6400000 5820225
4West Los Ang.Green 3500000 2935500
1 5Asia Tokyo Okura 9700000 8362600
6Europe AmsterdamJansen 13700000 13230575
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,E2(SQL,A,A)=select sum(price)into &e2.e2 from sales where region=
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Новая крупноформатная таблица имеет данные прогноза и реальные данные
Теперь вы переписали все данные,собранные в предыдущей крупноформатной
таблице,но в немного другом формате и совсем другим способом,Ранее,вы полага-
лись в основном на ручной ввод данных прогноза при заполнении своей крупнофор-
матной таблицы.В этот раз,вы перенесли все свои данные из двух таблиц БД,испо-
льзуя SQL - команды.
Опытный пользователь SQL заметит,что возможно перенести те же самые да-
нные,которые находятся в нашей крупноформатной таблице одной SQL - командой,
используя оператор GROUP BY.Эта SQL - команда будет следующей: select region*
sum (price) from region,sales where region.region = sales.region group by
region.region,hd,manager,forecast.
EВычисление процентного разброса для второго отчетаF
Теперь давайте добавим столбец,под названием PERCENT,который будет со-
держать вычисление процентного отношения равных величин к прогнозируемым для
каждого региона.
# Введите E f1 F,чтобы перейти в ячейку F1
# Напишите EPERCENT F в качестве заголовка столбца
# Нажмите E<стрелка вниз>F,чтобы перейти в ячейку F2
Убедитесь,что написали правильно,как и прежде,и:
# Введите E+e2/d2 * 100 F (также,как и в 1-2-3),чтобы вычислить про-
центное отношение реальных величин к пргнозируемым для Восточного региона.
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
1 2East New-York Owens 10500000 7874625 74.99642
3Central Chicago Parker 6400000 5820225
4West Los Ang.Green 3500000 2935500
5Asia Tokyo Okura 9700000 8362600
6Europe AmsterdamJansen 13700000 13230575
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,F2(Formula)=e2/d2*100
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Рельность составляет почти 75% от прогноза
SQL*Calc говорит нам,что за первые 10 месяцев,Восточный регион проделал
около 75% из прогнозируемой работы аукциона на целый год.
Теперь давайте скопируем эту же самую формулу в ячейки,расположенные
ниже; ссылки на ячейки установятся автоматически.
Находясь все еще в ячейке F2:
# Введите E/c для команды /CopiF
# Нажмите EF для копирования F2
# Введите Ef3.f6 F,чтобы определить интевал в который мы
хотим перекопировать свою формулу,с F3 по F6
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2East New-York Owens 10500000 7874625 74.99642
1 3Central Chicago Parker 6400000 5820225 90.94101
4West Los Ang.Green 3500000 2935500 83.87142
5Asia Tokyo Okura 9700000 8362600 86.21237
6Europe AmsterdamJansen 13700000 13230575 96.57354
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,F2(Formula)=e2/d2*100
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Процентное соотношение для всех регистров
Теперь,когда крупноформатная таблица заполнена данными
процентного соотношения,вы закончили второй отчет.
Размер крупноформатной таблицы и проблема сложности
Теперь подумайте о том,что вы только что сделали и как смогли это сде-
лать.Вы решили,что вам нужен первый отчет,использующий данные из первой круп-
ноформатной таблицы.Пользователь 1-2-3 подошел бы к этой задаче одним из двух
способов: расширил бы существующую крупноформатную таблицу или скопировал бы
крупноформатную таблицу в новую.
EРасширение крупноформатной таблицыF
Пользуясь 1-ым подходом,пользователь 1-2-3 расширил бы крупноформатную
таблицу и добавил бы к ней 2-ой отчет.В конечном итоге это решение приведет к
следующим проблемам:
- Крупноформатная таблица увеличивается дальше и дальше и требует больше и
больше машинной памяти,пока вы,в конечном итоге,не выйдете за ее пределы.
Крупноформатная таблица увеличивается дальше и дальше и становится более
сложной и более трудной для понимания.Эта возросшая сложность однозначно
повышает вероятность ошибки.
EКопирование крупноформатной таблицыF
Пользуясь 2-ым подходом,пользователь 1-2-3 скопировал бы крупноформат-
ную таблицу в другую и потом создал бы второй отчет на второй крупноформатной
таблице.Но это решение приводит к проблеме несовместимости данных:
- Если вы измените данные прогноза на одной из крупноформатных таблиц,то дан-
ные прогноза на второй крупноформатной таблице станут несовместимыми с эти-
ми данными на первой.Чтобы уйти от этой проблемы,вы должны запомнить все
случаи дублированных данных и вручную управлять всей последовательностью
крупноформатных таблиц.
EХранение общих данных в БД решает все проблемыF
SQL*Calc предлагает третий подход решения этих проблем.С SQL*Calc,вмес-
то копирования данных из первой во вторую крупноформатную таблицу или добавле-
ния новых данных в существующую крупноформатную таблицу,вы помещаете данные в
БД ORACLE.Хранение общих данных в БД имеет несколько преимуществ:
- Облегчается распределение данных между крупноформатными таблицами
- Облегчается консолидация данных на крупноформатных таблицах
- Облегчается хранение последовательностей данных среди многочисленных таблиц
Пример этих преимуществ вы увидите в следующих двух главах.
+ EГлава 5
Коректировка БД ORACLE из крупноформатной таблицыF
Вспомним,что за основу прогноза работы аукциона взято 12-тимесячное
представление,тогда как в случае реальной работы мы рассматриваем только пер-
вые 10 месяцев года.Мы ожидали бы поэтому процентную разность,расчитанную в
последней главе,ниже 100%.Фактически,так как мы имеем 10/12 от года,эта разни-
ца д.б. около 83%.
EПересмотр прогнозаF
Посмотрим на нашу крупноформатную таблицу,данные в столбце PERCENT по-
казывают,что по Восточному региону они ниже прогноза,по Западному и Азиатскому
- примерно соответствуют прогнозу,а по Центральному и Европе - лучше.С этой
информацией давайте пересмотрим прогноз на год.
Сперва,давайте создадим новый столбец в нашей крупноформатной таблице
под названием NEW FORECAST (новый прогноз):
# Введите E g1 F
# Напишите ENEW FORECAST F в качестве заголовка столбца
# Нажмите E<стрелка вниз>F,чтобы перейти в ячейку G"
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE NEW FORECAST
1 2East New-York Owens 10500000 7874625 74.99642
3Central Chiecgo Parker 6400000 5820225 90.94101
4West Los Ang.Green 3500000 2935500 83.87142
5Asia Tokyo Okura 9700000 8362600 86.21237
6Europe AmsterdamJansen 13700000 13230575 96.57354
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,G2(Blank)
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Столбец NEW FORECAST
EПроцент реальной работы аукционаF
В ячейке G2,вычислим новый пересмотренный прогноз на год,основанный на
реальной работе аукциона за первые 10 месяцев.
Убедитесь,что написали верно.В ячейке G2:
# Введите E+e2*12/10 F
Теперь давайте перекопируем эту формулу в ячейки,располоденные ниже,
чтобы вычислить пересмотренный прогноз по всем остальным регионам.
EКопирование NEW FORECASTF
# Введите E/cF для выбора команды /Copy
# Нажмите EF,чтобы перекопировать из текущей ячейки (G2)
и
# Введите Eg3.g6 F для определения интервала ячеек,в
которые вы хотите перекопировать формулу,с G3 по G6
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE NEW FORECAST
2East New-York Owens 10500000 7874625 74.99642 9449550
3Central Chicago Parker 6400000 5820225 90.94101 6984270
1. 4West Los Ang.Green 3500000 2935500 83.87142 3522600
5Asia Tokyo Okura 9700000 8362600 86.21237 10035120
6Europe AmsterdamJansen 13700000 13230575 96.57354 15876690
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,G2(Formula)=e2*12/10
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - NEW FORECAST
Теперь вы вычислили оценку нового прогноза до конца года для всех регионов.
Затем,давайте вручную округлим значения нового прогноза до полумиллиона.
# Из ячейки EG2F введите E9500000F (девять с половиной миллионов)
и нажмите E<стрелка вниз>F
# Введите E7000000F (семь миллионов) E<стрелка вниз>F
# Введите E3500000F (три с половиной миллиона) E<стрелка вниз>F
# Введите E10000000F (десять миллионов) E<стрелка вниз>F
# Введите E16000000F (шестнадцать миллионов) E<стрелка вниз>F
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE NEW FORECAST
2East New-York Owens 10500000 7874625 74.99642 9500000
1 3Central Chicago Parker 6400000 5820225 90.94101 7000000
4West Los Ang.Green 3500000 2935500 83.87142 3500000
5Asia Tokyo Okura 9700000 8362600 86.21237 10000000
6Europe AmsterdamJansen 13700000 13230575 96.57354 16000000
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,G6(Number)=16000000
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Округленный NEW FORECAST
Теперь вы вычислили скорректированные значения прогноза в этой крупно-
форматной таблице.Но переименуем ее в report 1,т.е. другую крупноформатную та-
блицу,чтобы еще были и первоначальные значения в ней.Теперь у вас две крупно-
форматные таблицы с несовместимыми данными прогноза.
Хранение данных на крупноформатных таблицах в БД ORACLE позволяет мно-
гочисленным крупноформатным таблицам разделять те данные и избегать от задачи
с несовместимыми данными,с которой мы только что столкнулись.
Давайте поместим наши данные пересмотренного прогноза в БД ORACLE.Отде-
льно,давайте заменим данные прогноза в таблице REGION на новые прогнозируемые
данные из нашей крупноформатной таблицы.Чтобы сделать это нам надо использова-
ть новую SQL - команду UPDATE.
EКоманда UPDATEF
Если вам надо непосредственно скорректировать БД ORACLE для изменения
прогноза по Восточному региону в таблице REGION,команда UPDATE будет следующей:
- update region set jorecast = 9500000 where region - 'East'.
Команда UPDATE называет таблицу,которую вы хотите модифицировать (update regi-
on); группу столбцов,которую вы определяете как равную некоторой величине (set
jorecast = 9500000); и определяет,какая строчка или группа строк в таблице
д.б. модифицирована (where region - 'East').
Но вместо непосредственно корректировки БД ORACLE,давайте сделаем кор-
ректирование БД из нашей крупноформатной таблицы с использованием ссылок на
ячейки в столбце NEW FORECAST.Таким способом мы можем копировать команду UPDA-
TE и ссылки на ячейки будут автоматически устанавливаться,как мы видели ранее,
когда использовали команду SELECT.
Команда UPDATE д.б. введена в свою собственную ячейку,также как и кома-
нда SELECT.
# Введите E g2 F,чтобы перейти в ячейку H2,которая располо-
жена справа от ячейки,содеращей информацию о новом прогнозе
Вы начинаете команду UPDATE тем же способом,что и команду SELECT - со знака $.
# Нажмите E<$>F
Убедитесь,что пишете на нижней строчке;
# Введите Eupdate region set forecast = & g2 where region =F
E& a2F,но не нажимайте EF
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE NEW FORECAST
2East New-York Owens 10500000 7874625 74.99642 9500000
1 3Central Chicago Parker 6400000 5820225 90.94101 7000000
4West Los Ang.Green 3500000 2935500 83.87142 3500000
5Asia Tokyo Okura 9700000 8362600 86.21237 10000000
6Europe AmsterdamJansen 13700000 13230575 96.57354 16000000
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0% USED,H2(Blank)
TIPE SQL STATEMENT.Press ENTER to execute it.Use & before poiting.
2.$update region set forecast = &g2 where region = &a2
1 - Команда UPDATE включена в пустую ячейку
2 - Команда UPDATE
# Нажмите EF для выполнения команды UPDATE
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE NEW FORECAST
1 2East New-York Owens 10500000 7874625 74.99642 9500000 **SQL**.
3Central Chicago Parker 6400000 5820225 90.94101 7000000
4West Los Ang.Green 3500000 2935500 83.87142 3500000
5Asia Tokyo Okura 9700000 8362600 86.21237 10000000
6Europe AmsterdamJansen 13700000 13230575 96.57354 16000000
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2.0% USED,H2(SQL)=update region set forecast = &g2 where region = &a2
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Ячейка показана на дисплее как **SQL**
2 - Команда UPDATE в H2
SQL*Calc показывает на дисплее ** SQL ** в ячейке H2,что напоминает вам
о наличии здесь SQL - команды и указывает на то,что в БД скорректирован прог-
ноз для Восточного региона.
Итак,вы скорректировали одну строку в таблице REGION.Теперь давайте пе-
рекопируем команду UPDATE в ячейки,расположенные ниже H2 и выполним каждую из
них так,что прогноз по каждому региону в БД будет скорректирован:
# Введите E/cF для выбора команды /Copy
# Нажмите EF,чтобы скопировать из текущей ячейки (H2),и
# Введите Eh3.h6 F для определения ряда ячеек,в которые
мы хотим перекопировать нашу команду UPDATE,с H3 по H6
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE NEW FORECAST
2East New-York Owens 10500000 7874625 74.99642 9500000 **SQL**.
3Central Chicago Parker 6400000 5820225 90.94101 7000000*Copied*.
1 4West Los Ang.Green 3500000 2935500 83.87142 3500000*Copied*.
5Asia Tokyo Okura 9700000 8362600 86.21237 10000000*Copied*.
6Europe AmsterdamJansen 13700000 13230575 96.57354 16000000*Copied*.
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1% USED,H2(SQL)=update region set forecast = &g2 where region = &a2
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Скопированные команды UPDATE показаны на дисплее как *Copied*
Все строки теперь имеют сообщение *Copied*.
Чтобы проверить,что коррекция БД сделана правильно для всех строк:
# НажмитеE<стрелка вниз>F,чтобы посмотреть содержание новой
команды UPDATE в ячейке H3
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE NEW FORECAST
2East New-York Owens 10500000 7874625 74.99642 9500000 **SQL**.
1 3Central Chicago Parker 6400000 5820225 90.94101 7000000*Copied*.
4West Los Ang.Green 3500000 2935500 83.87142 3500000*Copied*.
5Asia Tokyo Okura 9700000 8362600 86.21237 10000000*Copied*.
6Europe AmsterdamJansen 13700000 13230575 96.57354 16000000*Copied*.
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2.1% USED,H3(SQL)=update region set forecast = &g3 where region = &a3
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Текущая ячейка - H3
2 - Установление ссылки на ячейки
Как вы можете увидеть на строке состояния,SQL*Calc автоматически уста-
новил ссылку на ячейку с прогнозом Eg3 (forecast = Eg3) и ссылку на ячейку ре-
гиона Ea3 (region = Ea3),обе ячейки содержат правильные значения данных для
строки 3.
# Нажмите E<стрелка вверх>F (клавиша со стрелкой,направленной вве-
рх,на цифровой клавиатуре IBM PC) для перемещения обратно на H2
EВыполнение команд UPDATEF
Чтобы все команды UPDATE *Copied* были выполнены,
# Нажмите E<*Copied*>F
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE NEW FORECAST
2East New-York Owens 10500000 7874625 74.99642 9500000 **SQL**.
3Central Chicago Parker 6400000 5820225 90.94101 7000000 **SQL**.
4West Los Ang.Green 3500000 2935500 83.87142 3500000 **SQL**.
1 5Asia Tokyo Okura 9700000 8362600 86.21237 10000000 **SQL**.
6Europe AmsterdamJansen 13700000 13230575 96.57354 16000000 **SQL**.
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1% USED,H2(SQL)=update region set forecast = &g2 where region = &a2
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Команды UPDATE показаны на дисплее как **SQL**
Как и прежде,** SQL ** на всех строках указывае,что данные прогноза для
каждого региона в таблице REGION БД теперь скорректированы.
+ EГлава 6F
EДеление данных между крупноформатными таблицамиF
Давайте проверим: скорркетированы ли прогнозируемые данные данные в БД
Посредством нажатия одной клавиши (клавиатура ),вы можете запро-
сить,чтобы SQL*Calc выполнить все команды SELECT,хранящиеся в ячейках вашей
крупноформатной таблицы.Выполнение всех команд SELECT гарантирует,что вы имее-
те дело с последующими,хранящимися в БД.
EПовторное выполнение команд SELECTF
# Введите E a1 F
# Нажмите EF ( на клавиатуре IBM PC) для запроса
SQL*Calc выполнить команды SELECT в ячейках A2,E2,E3,E4,E5 и E6
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE NEW FORECAST
2East New-York Owens 10500000 7874625 74.99642 9500000 **SQL**.
1. 3Central Chicago Parker 6400000 5820225 90.94101 7000000 **SQL**.
4West Los Ang.Green 3500000 2935500 83.87142 3500000 **SQL**.
5Asia Tokyo Okura 9700000 8362600 86.21237 10000000 **SQL**.
6Europe AmsterdamJansen 13700000 13230575 96.57354 16000000 **SQL**.
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1% USED,A1(SQL,A,A)=select * into &a1.d6 from region
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Новые данные прогноза
Новые скорректированные данные прогноза переписаны в столбец D в нашей
крупноформатной таблице,и мы можем видеть,что коррекции в нашей БД действите-
льно сделаны.Теперь отправим на хранение эту крупноформатную таблицу,т.к. вы
можете представить ее первой крупноформатной таблицей для обзора.
# Введите E/f для выбора команды /FileF
# Введите ESF для хранения файла
# Введите Ereport2 F в качестве имени,которое вы хотите
дать этой новой таблице и
# Введите f илиEF,чтобы сожранить всю информацию о крупноформа-
тной таблице (формулы,SQL - команды,значения данных и т.д.)
EПеренос /FileF
Теперь когда вы отправили на хранение вторую крупноформатную
таблицу,давайте вызовем обратно первую.
# Введите E/f для команды /FileF
# Введите ErF,чтобы перенести файл
На строке подсказки читаем:
1.Enter worsheet hlename to RETRIVE.Press NAME for listing
2 ...
1 - Подсказка для имени файла
2 - Здесь вводите имя файла
# Введите Erepopt1 F.т.е.имя файла,в котором хранится вся крупнофор-
матная таблица
Теперь на строках подсказки и ввода читаем:
1.FILE PETRIVE: All Cells-onli Options-onli
Load all information from the hle
1 - Подсказка для переноса данных
Мы хотим перенести весь файл,потому:
# Нажмите EA или F для переноса всего файла
Как только SQL*Calc закончит считывать файл с вашего жестко-
го диска,ваша крупноформатная таблица вернется на ваш экран.
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2------------------------------------------------------
3East New-York Owens 10500000 7874625 -2625375
1 4Central Chiecgo Parker 6400000 5820225 -579775
2 5West Los Ang.Green 3500000 2935500 -564500
6Asia Tokyo Okura 9700000 8362600 -1337400
7Europe AmsterdamJansen 13700000 13230575 -469425
8 --------- ---------
9 43800000 38223525
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,File operation completed
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Вызвана первая крупноформатная таблица
2 - Значения старого прогноза
Данные здесь в том виде,в каком вы их хранили.
EВосстановление первого отчета с новыми данными прогноза из БДF
Очевидно цифры прогноза в этой первой крупноформатной таблице больше не
согласуются со скорректированными данными 2-ой таблицы.Однако,т.к. текущие да-
нные прогноза хранятся в нашей БД ORACLE,вы можете очень легко исправить дан-
ные в своей первой крупноформатной таблице,сделав их совместимыми.
# Введите E a3 F для перемещение в ячейку A3
# Нажмите EF,чтобы посмотреть сообщение SQL,которые мы
записали в эту ячейку в главе 4
Теперь строка состояния выглядит следующим образом:
EDIT: Use arrow keys,HOME,END,INSERT and DELETE.Press ENTER when done.
2.$select region,hd,manager,forecast into &a3.d7 from region
1 - Содержимое ячейки a3
# Нажмите EF для того,чтобы команда SELECT была выполнена снова
A B C D E F G H
1 REGION HQ MANAGER FORECAST ACTUAL VARIANCE
2------------------------------------------------------
3East New-York Owens 9500000 7874625 -1625375
4Central Chicago Parker 7000000 5820225 -1179775
1 5West Los Ang.Green 3500000 2935500 -564500
6Asia Tokyo Okura 10000000 8362600 -1637400
7Europe AmsterdamJansen 16000000 13230575 -2769425
8 --------- ---------
9 44000000 38223525
10
11COMPANY REGION MORTH PRODUST QUANTITY PRICT
12J C PENN East 31-MAY-8 Mini-B 9 1485000
13E I du P East 31-MAY-8 Mainfram 4 4000000
14R J Revn East 30-SEP-8 Mini-B 2 330000
15W R Grac East 31-OCT-8 Micro 10 32250
16U IBM East 31-MAY-8 Mainfram 1 1000000
17RCA East 30-SEP-8 Mini-A 8 179800
18CIGNA East 31-JAN-8 Mini-B 5 825000
19Manufact East 31-MAY-8 Micro 7 22575
20 ----------
21 7874625
1% USED,A3(SQL,A,A)=select region,hd,manager,forecast into &a3.d7 from r
Press HELP (F1) any time.(Begin SQL with $,formula with+,command with /.
1 - Перенесены новые данные прогноза
Это новые данные прогноза.Таким образом,между крупноформатными таблица-
ми легко распределять данные.Вместо копирования данных в новую таблицу или до-
бавления большего и большего числа данных в ту же таблицу,вы можете хранить
общие данные для таблиц и отчетов - в этом случае,данные прогноза и реальные
данные аукциона - в БД ORACLE.Эта способность хранить вами данные в централь-
ном месте - БД - делает легким хранение ваших крупноформатных таблиц с поддаю-
щейся управлению величинойи в основном автоматической совместимость данных.
EЗаключениеF
Что же вы изучили пока читали эту брощюру?
EСовместимость с 1-2-3F
Вы увидели,что SQL*Calc совместим с Lotus 1-2-3 по многим направлениям:
Крупноформатные таблицы в SQL*Calc выглядят так же как и
крупноформатные таблицы в 1-2-3
Ввод данных в SQL*Calc такой же,что и ввод данных 1-2-3
Ввод формул в SQL*Calc такой же как и в 1-2-3
Функциональные ключи в SQL те же,что и в 1-2-3
Команды /Copy,/Range Erase,/File Save,/File Retrieve и
/Worksheet Erase такие же как в 1-2-3
EДоступ к БД непросредственно из вашей крупноформатной таблицыF
Вы также изучили,как легко обеспечить доступ к большому колличеству
данных,хранящихся в БД ORACLE непосредственно из вашей крупноформатной табли-
цы.Отдельно,вы изучили как:
- Выделить на дисплее список всех таблиц в БД ORACLE
- Переносить данные из таблицы в ORACLE,используя команду SELECT
- Складывать значения в столбце в таблице из ORACLE,используя команду SELECT
SUM
- Создавать новую таблицу в БД ORACLE,используя команду /Oracle Table
- Корректировать таблицу БД ORACLE,данными находящимися в крупноформатной та-
блице,используя команду UPDATE
С этими возможностями вы можете использовать SQL*Calc,чтобы легко соз-
давать отчеты,которые трудно или невозможно создавать в 1-2-3.
EКоманды SQL идентичны формулам:F
В процессе чтения вы увидели,как SQL - команды похожи на формулы:
Обе вводятся в ячейки крупноформатной таблицы
Обе остаются как содержимое ячейки
Обе показаны на дисплее как значение крупноформатной таблицы
Обе могут ссылаться на значение других ячеек
Обе м.б. скопированы,и иметь свои ссылки на ячейки,устанавливаемые автомати-
чески
Решение проблем:
Наиболее важно,что вы изучили,как SQL*Calc поможет решить
несколько общих проблем крупноформатных таблиц:
Такой,как очень много данных
Крупноформатные таблицы так же,как и в 1-2-3,должны содержать свои дан-
ные в магнитной памяти.Так,крупноформатные таблицы на 1-2-3 ограничены сверху
8192 строками.Но так как SQL*Calc позволяет вам иметь непосредственный доступ
к данным,хранящимся на диске в БД ORACLE,вы можете легко управлять десятками
тысяч или даже сотнями тыся строк данных непосредственно из своей крупнофор-
матной таблицы
EТакой,как крупноформатные таблицы становятся очень сложнымиF
Так как 1-2-3 вынуждает вас производить все вычисления для одних и тех
же данных на одной и той же крупноформатной таблице,вы очень быстро создаете
большие крупноформатные таблицы,и поэтому cтановится трудно или невозможно за-
помнить все отношения между частями вашей крупноформатной таблицы.Т.к. SQL*
Calc дает вам возможность хранить свои данные в центральной БД,вы можете раз-
делить свои крупноформатные таблицы на управляемые части,минимизировать обра-
щение к машинной памяти и легко хранить крупноформатные таблицы
EТакой,как несовместимые данныеF
Способность SQL*Calc хранить данные в БД также позволяет вам легко обье-
динять данные из разных крупноформатных таблиц и сохранять совместимость среди
данных в разных крупноформатных таблицах
Эта брошюра создана,чтобы показать некоторые из характерных черт и пре-
имуществ SQL*Calc,которых нет в Lotus 1-2-3 или каких-либо других общепринятых
программ для крупноформатных таблиц.
В дополнении к уже описанным характерным чертам и преимуществам SQL*
Calc также позволяет:
- Многочисленным пользователям крупноформатных таблиц одновременно иметь дело
с одними и теми же данными
- Полную безопасность и секретность данных на уровне пространства БД
- Автоматическое восстановление данных в случае отказа энергии,программы или
дискового носителя
Чтобы изучить больше об этих характерных чертах или для большей ин-
формации о характерных чертах SQL*Calc,описаных в этой брошюре,пожалуйста со-
общите своему представителю ORACLE.
|