Разработка базы данных для анализа продаж в рекламном агентстве

Курсовой проект

Разработка базы данных для анализа продаж в рекламном агентстве

База данных (БД) представляет собой организованную структуру, используемую для хранения данных, т.е. любых сведений о явлениях, процесса, действиях и т.д. В современной технологии БД предполагается, что создание БД, ее поддержка и обеспечения доступа пользователей к ней осуществляется централизованно с помощью специализированного программного инструментария — системы управления базами данных (СУБД).

Системы управления базами данных (СУБД) — это комплекс программных и языковых средств, необходимых для создания баз данных, поддерживания их в актуальном состоянии и организации поиска в них необходимой информации.

Среди наиболее ярких представителей систем управления базами данных: Microsoft Access, Microsoft Visual FoxPro, а также базы данных Microsoft SQL Server и Oracle, используемые в приложениях, построенных по технологии «клиент-сервер».

В этом курсовом проекте база данных разработана с использованием облачного сервиса №701385.files/image001.gif»>

Рисунок 1 — Вход в Oracle Application Express

2.2 Создание таблиц в Oracle Application Express

Таблицы в СУБД Oracle Application Express можно создавать двумя способами: в диалоговом режиме и с помощью языка SQL.

Создание таблиц с помощью диалогового режима , Главного меню

Создание таблиц с помощью диалогового режима  1

Рисунок 2 — Кнопка Object Browser

После этого на экране появляется окно, разделенное на два поля: левое содержит список всех объектов БД, правое — различную информацию о них (Рисунок 3).

Создание таблиц с помощью диалогового режима  2

Рисунок 3 — Окно создания таблицы в диалоговом режиме

При нажатии в правом верхнем углу кнопки Create (Создать ) откроется выпадающий список, в котором можно выбрать тип создаваемого объекта БД. При создании таблицы следует выбрать пункт Table (Рисунок 4).

Создание таблиц с помощью диалогового режима  3

4 стр., 1826 слов

Маркетинг-менеджмент и его место в управлении организацией

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

Рисунок 4 — Выбор типа создаваемого объекта (Table)

Table Name

Создание таблиц с помощью диалогового режима  4

Рисунок 5 — Окно создания таблицы

Рассмотрим процесс создания таблицы на примере таблицы KLIENT . Введем имя таблицы, названия столбцов, определим типы данных (Type ), установим количество знаков после запятой (Scale ) и ограничения на нулевое значения (Not Null ) (Рисунок 6).

Создание таблиц с помощью диалогового режима  5

Рисунок 6 — Создание полей таблицы KLIENTS

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

Система предлагает 4 варианта определения первичного ключа: «Не указывать первичный ключ», «Указать ключевое поле из новой таблицы», «Указать ключевое поле из уже существующей таблицы», «Создать составное ключевое поле из двух колонок таблицы». При создании таблицы KLIENT выберем второй вариант; ключевым полем таблицы станет поле ID (Рисунок 7).

Создание таблиц с помощью диалогового режима  6

Рисунок 7 — Выбор первичного ключа

На следующем этапе следует определить внешние ключи. Внешний ключ устанавливает связь между столбцами двух таблиц. При создании таблицы KLIENT внешние ключи не использовались (Рисунок 8).

Создание таблиц с помощью диалогового режима  7

Рисунок 8 — Выбор внешних ключей

После определения внешних ключей пользователю предоставляется возможность создания ограничений двух видов: Check (проверка) и Unique (уникальность).

Установим параметры уникальности для столбца BIK таблицы KLIENTS и нажмем кнопку Add (Рисунок 9).

Создание таблиц с помощью диалогового режима  8

Рисунок 9 — Окно создания ограничений

На последнем этапе подтверждаем создание таблицы (Рисунок 10).

Создание таблиц с помощью диалогового режима  9

Рисунок 10 — Окно подтверждения создания таблицы

Нажав кнопку SQL можно увидеть, как выглядит запрос на создание таблицы на языке SQL (Рисунок 11).

Создание таблиц с помощью диалогового режима  10

Рисунок 11 — Запрос создания таблицы на языке SQL

Внешний вид созданной таблицы KLIENTS представлен на рисунке 12.

Создание таблиц с помощью диалогового режима  11

Рисунок 12 — Таблица KLIENTS, созданная в диалоговом режиме

Создание таблиц в режиме SQL

Главного меню

Главного меню 1

Рисунок 13 — Кнопка SQL Commands

14 стр., 6760 слов

Особенности создания стоматологической деятельности

... заболеваний; детская стоматология эстетическая стоматология (отбеливание зубов, снятие зубного камня, налета курильщика и пр.) В советское время клиники ориентировались в основном на терапию и хирургию, то ... 200 Протезирование (металлокерамика) 200 Снятие зубного камня 10 (с зуба) Таблица 11. Ответственность за деятельность Главный бухгалтер Заведующий оргметодотделом Администратор Лечащий врач ...

После этого открывается окно, в котором расположены область для ввода SQL команд и кнопки Sav e и Run для сохранения и запуска написанной программы соответственно (Рисунок 14).

Главного меню 2

Рисунок 14 — Окно ввода SQL команд

VIDI_USLUG

Главного меню 3

Рисунок 15 — SQL команды для создания таблицы VIDI_USLUG

После нажатия кнопки Run при верном написании кода таблица будет создана (Рисунок 16).

Главного меню 4

Рисунок 16 — Таблица VIDI_USLUG, созданная с помощью SQL запроса

Если структура таблицы в базе данных Oracle совпадает со структурой таблицы в базе данных Access или Excel, данные из одной таблицы можно импортировать в другую.

Price_list

Главного меню 5

Рисунок 17 — Кнопка Data Workshop

Spredsheet Data

На первом этапе требуется выбрать, куда ( Load to ) закачивать данные. Т.к. таблица уже существует в БД Oracle, то выбираем существующую таблицу (Existing Table ) (рисунок 18).

Главного меню 6

Рисунок 18 — Выбор места копирования данных

На втором этапе указываем таблицу, в которую будут импортироваться данные (Рисунок 19).

Главного меню 7

Рисунок 19 — Выбор таблицы для загрузки данных

На следующем шаге импорта мастер предлагает вставить данные из буфера обмена в окно, расположенное в центре страницы. Сначала откроем таблицу в Access, выделим все строки и нажмем клавиши Ctrl+C (копировать).

Затем щелкнем мышью в окошке на страницу APEX и нажмем CTRL+V (вставить).

В окне появляются данные из таблицы (Рисунок 20).

Главного меню 8

Рисунок 20 — Копирование данных из таблицы Access на страницу Apex

На последнем этапе импортирования мастер выводит всю структуру таблицы и данные (Рисунок 21).

Главного меню 9

Рисунок 21 — Структура и данные импортированной таблицы

Load Data

Рисунок 22 — Таблица Price_list, данные которой импортированы из таблицы Access

В ходе выполнения курсового проекта были созданы таблицы KLIENTS, VIDI_USLUG, USLUGI, FIRMA (Рисунки 23, 24), ZAKAZ (Рисунки 25, 26), DOKUMENT (Рисунки 27, 28).

Главного меню 10

Рисунок 23 — Ограничения для таблицы FIRMA

Главного меню 11

75 стр., 37282 слов

Повышение конкурентоспособности малого предприятия в условиях ...

... доля организации (объем продаж). Виды рынков несовершенной конкуренцией показаны на рисунке 1. Рисунок 1 Виды рынков несовершенной конкуренции Исходя из Рис. 1, можно ... предприятия. Целью выпускной квалификационной работы является разработка мероприятий по повышению конкурентоспособности и обоснование экономической эффективности предприятия на примере ООО «Ритейл Групп». Для достижения поставленной ...

Рисунок 24 — Данные таблицы FIRMA

Главного меню 12

Рисунок 25 — Ограничения для таблицы ZAKAZ

Главного меню 13

Рисунок 26 — Данные таблицы ZAKAZ

Главного меню 14

Рисунок 27 — Ограничения для таблицы DOKUMENT

Главного меню 15

Рисунок 28 — Данные таблицы DOKUMENT

2.3

Чтобы просмотреть таблицы и связи между ними, используйте форму конструктора запросов. Для этого выберем в меню вкладку SQL Workshop , нажмем кнопку Utilities .

Далее нажмем кнопку Query Builder .

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

.1 Создание запросов

SQL Workshop

В открывшемся окне следует ввести текст запроса на языке SQL. Для запуска запроса на выполнения необходимо нажать кнопку Run . Для того чтобы сохранить созданный запрос, необходимо нажать кнопку Save.

Запрос 1 — «Суммарная суточная стоимость и количество продаж по каждому товару».

SELECT DOKUMENT.DATA, USLUGI.USLUGA, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA, SUM (ZAKAZ.KOLICHESTVO) AS KOLICHESTVO_ZAKAZOV

FROM USLUGI INNER JOIN (DOKUMENT INNER JOIN ZAKAZ ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA) ON USLUGI.KOD=ZAKAZ.KOD_USLUGIDOKUMENT.DATA >: «НАЧАЛО ПЕРИОДА» AND DOKUMENT.DATA <: «КОНЕЦ ПЕРИОДА»BY DOKUMENT.DATA, USLUGI.USLUGA, USLUGI.PRICE, ZAKAZ.STATUS

HAVING (ZAKAZ.STATUS=’выполнен’)BY DOKUMENT.DATA

После выполнения этого запроса на экране появляется окно, предлагающее пользователю ввести период, для которого должен отображаться результат.

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

Запрос 2 — Расчет суммарной стоимости заказов за день, месяц, год

1. Выручка по дням

SELECT DOKUMENT.DATA, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA

FROM DOKUMENT INNER JOIN (USLUGI INNER JOIN ZAKAZ ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTADOKUMENT.DATA >: «НАЧАЛО ПЕРИОДА» AND DOKUMENT.DATA <: «КОНЕЦ ПЕРИОДА»

GROUP BY DOKUMENT.DATA

После нажатия кнопки Submit выводится таблица, отражающая выручку по дням.

  • Выручка за месяц

SELECT P1.MONTH, SUM (P1.VIRUCHKA) AS VIRUCHKAP1P1.YEAR =: «ВВЕДИТЕ ГОД» AND P1.MONTH >: «ВВЕДИТЕ МЕСЯЦ» BY P1.MONTH

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

  • Выручка за год

SELECT P1.YEAR, SUM (P1.VIRUCHKA) AS VIRUCHKAP1P1.YEAR=: «ВВЕДИТЕ ГОД»

GROUP BY P1.YEAR

После нажатия кнопки Submit выводится таблица, отражающая выручку по годам.

Текст запроса для View P1:

SELECT TO_CHAR (DOKUMENT.DATA, ‘YYYY’) AS YEAR, TO_CHAR (DOKUMENT.DATA, ‘MONTH’) AS MONTH, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA

8 стр., 3768 слов

Плюсы и минусы рекламы

... также на автозаправочных станциях (азс).) 8. Интернет реклама Плюсы и минусы рекламы в прессе Традиционно к плюсам печатной рекламы относят: Информативность. Рекламное обращение может включать несколько ... объявление, разительно отличающееся от остальных. Плюсы и минусы печатной рекламы: Плюсы. Низкая стоимость. Низкая стоимость создания рекламного модуля и размещения в печати. Конечно, есть ...

FROM DOKUMENT INNER JOIN (USLUGI INNER JOIN ZAKAZ ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA

GROUP BY DOKUMENT.DATA

Запрос 3 — Расчет количества заказов по группам товаров

SELECT DOKUMENT.DATA, VIDI_USLUG.VID, SUM (ZAKAZ.KOLICHESTVO) AS KOLICHESTVO_ZAKAZOVVIDI_USLUG INNER JOIN (USLUGI INNER JOIN (DOKUMENT INNER JOIN ZAKAZ ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA) ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON VIDI_USLUG.KOD=USLUGI.KOD_VIDABY DOKUMENT.DATA, VIDI_USLUG.VID

Object Browser

SQL Commands

Далее подтверждаем создание запроса. После успешного выполнения всех шагов запрос появится в списке запросов к базе данных.

Аналогичным образом были созданы запросы «Себестоимость и количество продаж по товарам», «Выручка по дням».

3.2 Создание основы для приложения

Application Builder

Sample Database Application

Далее введем имя приложения (РЕКЛАМНОЕ АГЕНТСТВО), укажем схему (REKLAMA) и выберем пользовательский интерфейс ( Desktop ).

В следующем окне предлагается выбрать тип стартовой страницы ( Blank — пустая, Report — отчет, Form — форма, Chart — график и др.).

Для создания стартовой страницы приложения «РЕКЛАМНОЕ АГЕНТСТВО» выберем тип Blank .

В следующем окне вы можете настроить возможность копирования компонентов из других доступных приложений.

После нажатия на кнопку «Далее» открывается окно, в котором мы выбираем язык, формат даты и времени.

Simple Gray

После нажатия кнопки Next появляется окно, в котором необходимо подтвердить создание приложения.

Application Builder

Для запуска приложения необходимо нажать кнопку Run , после чего система запросит логин и пароль.

3.3 Создание форм

User Interface

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

В следующем окне необходимо ввести имя списка и выбрать тип его создания (статический или динамический).

Для списка « STATUS » выбираем статический тип, для списка «KLIENTS » — динамический.

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

Display As

После сохранения данных изменений в поле « Статус » пользователь сможет выбирать конкретные значения: выполнен/не выполнен вместо того, чтобы вводить эти значения вручную.

Аналогичным образом было настроено отображение поля « Клиенты » — выбор названия компании-заказчика вместо ID и поля «Наименование услуги » — выбор услуги из выпадающего списка.

.4 Создание отчетов

Существует несколько вариантов создания отчетов: интерактивный отчет, веб-отчет, стандартный отчет и мастер отчетов.

4 стр., 1992 слов

Современные аспекты маркетинговой политики компаний

... Российские компании все еще находятся в стадии понимания проблемы или начала организации маркетинговых услуг, переходя от идеологии продаж к «философии маркетинга". Большинство из них по- ... большинства отечественных производителей оригинальные технологии продолжают оставаться слабым звеном. Примеров блестящей маркетинговой стратегии очень мало, и ее часто заимствуют у зарубежных коллег. Например, ...

Выручка по дням, Выручка по дням

Текст SQL запроса для создаваемого отчета:

select VIRUCHKA_PO_DNYAM.DATA as DATA,_PO_DNYAM.VIRUCHKA as VIRUCHKAVIRUCHKA_PO_DNYAM VIRUCHKA_PO_DNYAM

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

Аналогичным образом были сформированы отчеты «Количество заказов по товарным группам» и «Стоимость и количество заказов на услуги и товары».


База данных предназначена для накопления и анализа данных о результатах коммерческой деятельности рекламного агентства «Идея». Хранит справочную информацию о клиентах и ​​предоставляемых услугах, а также информацию о заказе.

Чтобы начать работу с Базой данных, в любом браузере перейдите по ссылке: # «701385.files/image030.gif»> позволяет открыть новую страницу, на которой представлен список услуг для каждого вида. Кнопки «Удалить», «Удалить выбранное», «Добавить услугу», «Сохранить изменения» позволяют выполнять соответствующие действия.

Вкладка «Заказы по документам»

Кнопка Вкладка заказы по документам  1 позволяет открыть новую страницу, на которой представлены заказы по каждому документу. Кнопки «Удалить», «Удалить выбранное», «Добавить услугу», «Сохранить изменения» позволяют выполнять соответствующие действия. Для ввода даты предусмотрен интегрированный календарь, щелкнув по которому пользователь может выбрать нужную дату.

Вкладка «Отчеты»

Он содержит кнопки «Количество заказов по товарным группам», «Стоимость и количество продаж по продуктам» и «Оборот по дням», при нажатии на одну из которых пользователь откроет страницу с соответствующим отчетом.

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

Эти отчеты могут быть отправлены по электронной почте, загружены в файл CSV или открыты на отдельной странице браузера, для этого выберите пункт «Загрузить» в меню «Действия.

Вкладка «Диаграммы»

Он содержит кнопки «Оборот по услугам» и «Оборот по заказам», при нажатии на одну из кнопок пользователь откроет страницу с соответствующей диаграммой.

Вкладка «Информация о нас»

Эта вкладка содержит информацию о компании, доступную только для просмотра. Пользователи приложения не могут вносить изменения. Кнопка «Вернуться на главную» используется для перехода на домашнюю страницу.

Вкладка «О программе»

Эта вкладка содержит информацию о назначении программного обеспечения, версии, разработчике и отзывы. При переходе по ссылке откроется страница с инструкциями по работе с программным приложением «Рекламное агентство« Идея»».

Заключение

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

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

Облачная среда очень удобна для работы с БД. Практически все функциональные возможности стационарных СУБД реализованы с помощью удобного интерфейса. Средства визуального программирования позволяют за несколько шагов создать необходимые стандартные объекты (таблицы, запросы, формы и отчеты).

Но разработка наиболее удобного интерфейса для конечного пользователя требует более глубокого знания среды.

1. Базы данных. Проектирование, реализация, сопровождение. Теория и практика: Томас М. Конноли, Каролин Е. — Москва-Санкт-Петербург, 2009

2. Базы данных. Учебный курс: Глушков С.В., Ломотько Д.В. — Харьков, 2010

  • SQL. Справочное руководство: Мартин Грабер — Санкт-Петербург, Лори, 2012
  • Oracle PL/SQL для администраторов баз данных: Аруп Нанда и Стивен Фейерштейн — Санкт-Петербург, Символ-Плюс, 2008
  • Эффективное проектирование приложений Oracle: Томас Кайт — Москва, Лори, 2008 г.

Текст SQL-запроса таблицы «FIRMA»

CREATE TABLE «FIRMA»

(«NAZVANIE» VARCHAR2 (70) NOT NULL ENABLE,

«RUKOVODITEL» VARCHAR2 (100) NOT NULL ENABLE,

«ADRES» VARCHAR2 (150),

«INN» VARCHAR2 (20) NOT NULL ENABLE,

«GLAV_BUH» VARCHAR2 (100),

«TELEPHONE» VARCHAR2 (30),

«BIK» VARCHAR2 (40) NOT NULL ENABLE,

«E-MAIL» VARCHAR2 (70)

/

Текст SQL-запроса таблицы «KLIENTS»

CREATE TABLE «KLIENTS»

(«ID» NUMBER NOT NULL ENABLE,

«NAZVANIE_FIRMI» VARCHAR2 (60) NOT NULL ENABLE,

«RUKOVODITEL» VARCHAR2 (100),

«BIK» VARCHAR2 (40) NOT NULL ENABLE,

«TELEPHONE» VARCHAR2 (30),

«ADRES» VARCHAR2 (140),«KLIENTS_PK» PRIMARY KEY («ID») ENABLE

/OR REPLACE TRIGGER «BI_KLIENTS»insert on «KLIENTS»each row:NEW. «ID» is null then«KLIENTS_SEQ».nextval into:NEW. «ID» from sys.dual;if;;

/TRIGGER «BI_KLIENTS» ENABLE

/

Текст SQL-запроса таблицы «ZAKAZ»

CREATE TABLE «ZAKAZ»

(«NOMER_DOKUMENTA» NUMBER (6,0) NOT NULL ENABLE,

«KOD_USLUGI» NUMBER (6,0) NOT NULL ENABLE,

«KOLICHESTVO» NUMBER (6,0) NOT NULL ENABLE,

«STATUS» VARCHAR2 (30)

/TABLE «ZAKAZ» ADD CONSTRAINT «ZAKAZ_FK2» FOREIGN KEY («NOMER_DOKUMENTA»)«DOKUMENT» («NOMER_DOKUMENTA») ON DELETE CASCADE ENABLE

/TABLE «ZAKAZ» ADD CONSTRAINT «ZAKAZ_FK3» FOREIGN KEY («KOD_USLUGI»)«USLUGI» («KOD») ON DELETE CASCADE ENABLE

/

Текст SQL-запроса таблицы «DOKUMENT»

CREATE TABLE «DOKUMENT»

(«NOMER_DOKUMENTA» NUMBER (6,0) NOT NULL ENABLE,

«NOMER_ZAKAZA» NUMBER (6,0) NOT NULL ENABLE,

«DATA» DATE NOT NULL ENABLE,

«KLIENTSKIJ_NOMER» NUMBER (6,0) NOT NULL ENABLE,«DOKUMENT_PK» PRIMARY KEY («NOMER_DOKUMENTA») ENABLE

/TABLE «DOKUMENT» ADD CONSTRAINT «DOKUMENT_FK» FOREIGN KEY («KLIENTSKIJ_NOMER»)«KLIENTS» («ID») ON DELETE CASCADE ENABLE

/

OR REPLACE TRIGGER «BI_DOKUMENT»insert on «DOKUMENT»each row:NEW. «NOMER_DOKUMENTA» is null then«DOKUMENT_SEQ».nextval into:NEW. «NOMER_DOKUMENTA» from sys.dual;if;;

Текст SQL-запроса таблицы «VIDI_USLUG»

CREATE TABLE «VIDI_USLUG»

(«KOD» NUMBER (6,0) NOT NULL ENABLE,

«VID» VARCHAR2 (60) NOT NULL ENABLE,«VIDI_USLUG_PK» PRIMARY KEY («KOD») ENABLE

/OR REPLACE TRIGGER «BI_VIDI_USLUG»insert on «VIDI_USLUG»each row:NEW. «KOD» is null then«VIDI_USLUG_SEQ1».nextval into:NEW. «KOD» from sys.dual;if;;

/TRIGGER «BI_VIDI_USLUG» ENABLE

/

Текст SQL-запроса таблицы «USLUGI»

CREATE TABLE «USLUGI»

(«KOD» NUMBER (6,0) NOT NULL ENABLE,

«USLUGA» VARCHAR2 (60) NOT NULL ENABLE,

«PRICE» NUMBER NOT NULL ENABLE,

«KOD_VIDA» NUMBER (6,0) NOT NULL ENABLE,«USLUGI_PK» PRIMARY KEY («KOD») ENABLE

/TABLE «USLUGI» ADD CONSTRAINT «USLUGI_FK» FOREIGN KEY («KOD_VIDA»)«VIDI_USLUG» («KOD») ON DELETE CASCADE ENABLE

/

OR REPLACE TRIGGER «BI_USLUGI»insert on «USLUGI»each row:NEW. «KOD» is null then«USLUGI_SEQ1».nextval into:NEW. «KOD» from sys.dual;if;;

/TRIGGER «BI_USLUGI» ENABLE

/

View для отчета «Количество заказов по группам товаров»

CREATE OR REPLACE FORCE VIEW «KOL_ZAKAZOV_PO_GRUPPAM_TOVAROV» («DATA», «VID», «KOLICHESTVO_ZAKAZOV») ASDOKUMENT.DATA, VIDI_USLUG.VID, SUM (ZAKAZ.KOLICHESTVO) AS KOLICHESTVO_ZAKAZOVVIDI_USLUG INNER JOIN (USLUGI INNER JOIN (DOKUMENT INNER JOIN ZAKAZ ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA) ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON VIDI_USLUG.KOD=USLUGI.KOD_VIDABY DOKUMENT.DATA, VIDI_USLUG.VID

/

View для отчета «Стоимость и количество продаж по услугам и товарам»

CREATE OR REPLACE FORCE VIEW «STOIM_I_KOL_PRODAG_PO_TOVARAM» («DATA», «USLUGA», «VIRUCHKA», «KOLICHESTVO_ZAKAZOV») ASDOKUMENT.DATA, USLUGI.USLUGA, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA, SUM (ZAKAZ.KOLICHESTVO) AS KOLICHESTVO_ZAKAZOV

FROM USLUGI INNER JOIN (DOKUMENT INNER JOIN ZAKAZ ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA) ON USLUGI.KOD=ZAKAZ.KOD_USLUGIBY DOKUMENT.DATA, USLUGI.USLUGA, USLUGI.PRICE, ZAKAZ.STATUS

HAVING (ZAKAZ.STATUS=’выполнен’)BY DOKUMENT.DATA

/

View для отчета «Выручка по дням»

CREATE OR REPLACE FORCE VIEW «VIRUCHKA_PO_DNYAM» («DATA», «VIRUCHKA») ASDOKUMENT.DATA, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA

FROM DOKUMENT INNER JOIN (USLUGI INNER JOIN ZAKAZ ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTA

GROUP BY DOKUMENT.DATA

/

Текст запроса с параметром — «Выручка по дням»:

SELECT DOKUMENT.DATA, SUM (USLUGI.PRICE*ZAKAZ.KOLICHESTVO) AS VIRUCHKA

FROM DOKUMENT INNER JOIN (USLUGI INNER JOIN ZAKAZ ON USLUGI.KOD=ZAKAZ.KOD_USLUGI) ON DOKUMENT.NOMER_DOKUMENTA=ZAKAZ.NOMER_DOKUMENTADOKUMENT.DATA >: «НАЧАЛО ПЕРИОДА» AND DOKUMENT.DATA <: «КОНЕЦ ПЕРИОДА»

GROUP BY DOKUMENT.DATA