ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



                      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
      # Нажмите EF(клавиша косой черты) для начала команды.
       Строка подсказки покажет теперь меню команд:

     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
      # Нажмите E
F 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.

KOAP Open Portal 2000