Содержание
- Задача 1.11.
- Задача 1.1.
- Задача 4.1.
- Задача 2.7.
- Задача 6.15.
Задача 1.11
Выдать список клиентов, заказавших товары на 1 ноября текущего года, их телефоны и факсы.
Решение:
- Определение состава выходного сообщения
Состав и структура требуемого сообщения:
S (Клиенты по заказам на 1 ноября текущего года):
S (Сотрудники.Фамилия, Сотрудники.Имя, Заказы.КодЗаказа, Заказы.ДатаРазмещения, Клиенты.Название)
Клиенты по заказам на 1 ноября текущего года
| Код клиента | Название | Телефон | Факс |
Обязательные реквизиты: Название, Телефон, Факс
Дополнительные: Код клиента
- Разработка модели процесса
Определяем состав полей и таблиц, используемых в запросе, из схемы № 1 (рис 1, база данных «Борей»).
Рисунок 1 – Схема данных БД «Борей»
Представляем в графическом виде обобщенную схему задачи (рис. 2).
| Список клиентов по заказам на 1 ноября текущего года |
| Заказы |
| Выборка клиентов по заказам на 1 ноября текущего года |
| Клиенты |
Рисунок 2 – Обобщенная функционально-технологическая схема задачи
Из таблицы Клиенты необходимо выбрать поля: Код клиента, Название, Телефон, Факс. Из таблицы Заказы выбирается поле Дата размещения для формирования условия.
- Общее описание процесса решения задачи
Выборка списка клиентов, заказавших товары на 1 ноября текущего года, их телефоны и факсы, поможет оповестить их о начале выполнения заказа.
Данные, одновременно необходимые в большой компании многим потребителям, размещаются на сервере сети в коллективно используемой корпоративной базе данных, функционирующей под управлением Microsoft SQL Server. СУБД используется под WindowsServer. Работа с базой данных в Access осуществляется с использованием соответствующего *.mdb файла.
Подготовка запроса в Access при использовании *.mdb файла с использованием Конструктора, поскольку нее данные находятся в связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. Запрос передается серверу, который возвращает клиенту таблицу. Выполнение процедур создания и исполнения запроса осуществляется на рабочей станции и на сервере сети.
- Представление подсхемы базы данных
Рисунок 3 – Подсхема базы данных
Таблицы содержат первичные ключи: Клиенты – Код клиента, Заказы – Код заказа и вторичные: Заказы – Код клиента. За счет этого обеспечивается связь между таблицами.
- Подготовка контрольного примера
Процедуры реляционной обработки данных выполняются вручную. Представляем значения исходных данных в таблицах.
Таблица Клиенты (фрагмент)
| Код клиента | Название | Телефон | Факс |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 |
| CACTU | CactusComidasparallevar | (1) 135-5555 | (1) 135-4892 |
| BERGS | Berglundssnabbkop | 0921-12 34 65 | 0921-12 34 67 |
| BSBEV | B’sBeverages | (171) 555-1212 | |
| BOTTM | Bottom-DollarMarkets | (604) 555-4729 | (604) 555-3745 |
| DUMON | Dumondeentier | 40.67.88.88 | 40.67.89.89 |
| ERNSH | ErnstHandel | 7675-3425 | 7675-3426 |
Таблица Заказы (фрагмент)
| Код клиента | Дата размещения |
| LINOD | 07-09-2018 |
| CACTU | 01-11-2018 |
| LINOD | 01-11-2018 |
| LINOD | 01-11-2018 |
| LINOD | 01-11-2018 |
| BERGS | 03-11-2018 |
| BSBEV | 03-11-2018 |
| BOTTM | 01-11-2018 |
| DUMON | 03-11-2018 |
| ERNSH | 03-11-2018 |
Результаты выполнения операций:
Этап 1
SELECT Клиенты.КодКлиента, Клиенты.Название, Клиенты.Телефон, Клиенты.Факс, Year([ДатаРазмещения]) AS Год
FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента
WHERE (((Year([ДатаРазмещения]))=Year(Date())))
WITH OWNERACCESS OPTION;
| Код клиента | Название | Телефон | Факс | Год |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 | 2018 |
| CACTU | CactusComidasparallevar | (1) 135-5555 | (1) 135-4892 | 2018 |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 | 2018 |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 | 2018 |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 | 2018 |
| BERGS | Berglundssnabbkop | 0921-12 34 65 | 0921-12 34 67 | 2018 |
| BSBEV | B’sBeverages | (171) 555-1212 | 2018 | |
| BOTTM | Bottom-DollarMarkets | (604) 555-4729 | (604) 555-3745 | 2018 |
| DUMON | Dumondeentier | 40.67.88.88 | 40.67.89.89 | 2018 |
| ERNSH | ErnstHandel | 7675-3425 | 7675-3426 | 2018 |
Этап 2
SELECT Клиенты.КодКлиента, Клиенты.Название, Клиенты.Телефон, Клиенты.Факс, Month([ДатаРазмещения]) AS Месяц, Year([ДатаРазмещения]) AS Год
FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента
WHERE (((Month([ДатаРазмещения]))=11) AND ((Year([ДатаРазмещения]))=Year(Date())))
WITH OWNERACCESS OPTION;
| Код клиента | Название | Телефон | Факс | Месяц | Год |
| CACTU | CactusComidasparallevar | (1) 135-5555 | (1) 135-4892 | 11 | 2018 |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 | 11 | 2018 |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 | 11 | 2018 |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 | 11 | 2018 |
| BERGS | Berglundssnabbkop | 0921-12 34 65 | 0921-12 34 67 | 11 | 2018 |
| BSBEV | B’sBeverages | (171) 555-1212 | 11 | 2018 | |
| BOTTM | Bottom-DollarMarkets | (604) 555-4729 | (604) 555-3745 | 11 | 2018 |
| DUMON | Dumondeentier | 40.67.88.88 | 40.67.89.89 | 11 | 2018 |
| ERNSH | ErnstHandel | 7675-3425 | 7675-3426 | 11 | 2018 |
Этап 3:
SELECT Клиенты.КодКлиента, Клиенты.Название, Клиенты.Телефон, Клиенты.Факс, Day([ДатаРазмещения]) AS День, Month([ДатаРазмещения]) AS Месяц, Year([ДатаРазмещения]) AS Год
FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента
WHERE (((Day([ДатаРазмещения]))=1) AND ((Month([ДатаРазмещения]))=11) AND ((Year([ДатаРазмещения]))=Year(Date())))
WITH OWNERACCESS OPTION;
| Код клиента | Название | Телефон | Факс | День | Месяц | Год |
| CACTU | CactusComidasparallevar | (1) 135-5555 | (1) 135-4892 | 1 | 11 | 2018 |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 | 1 | 11 | 2018 |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 | 1 | 11 | 2018 |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 | 1 | 11 | 2018 |
| BOTTM | Bottom-DollarMarkets | (604) 555-4729 | (604) 555-3745 | 1 | 11 | 2018 |
- Формирование и отладка запроса
Для исключения повторяющихся строк необходимо использовать следующую инструкцию SELECT DISTINCTROW.
Полный вариант SQL-запроса:
SELECT DISTINCTROW Клиенты.КодКлиента, Клиенты.Название, Клиенты.Телефон, Клиенты.Факс
FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента
WHERE (((Day([ДатаРазмещения]))=1) AND ((Month([ДатаРазмещения]))=11) AND ((Year([ДатаРазмещения]))=Year(Date())))
WITH OWNERACCESS OPTION;
| Код клиента | Название | Телефон | Факс |
| BOTTM | Bottom-DollarMarkets | (604) 555-4729 | (604) 555-3745 |
| CACTU | CactusComidasparallevar | (1) 135-5555 | (1) 135-4892 |
| LINOD | LINO-Delicateses | (8) 34-56-12 | (8) 34-93-93 |
Подготовка запроса осуществляется с использованием Конструктора запросов в следующем порядке. После открытия базы данных Борей выполняется команда Создание – Конструктор запросов. Добавляются в окно подсхемы данных необходимые таблицы, из которых выбираются поля. Далее указываются необходимые условия. Выполняется запуск запроса и проверяется результат его работы. Сохраняем запрос под именем «Клиенты по заказам на 1 ноября текущего года».
Задача 1.1
Для определения поставщика определенного товара выдать названия поставщиков, поставляющих товары группы «Хлебобулочные изделия», и данные для работы с поставщиками.
Решение:
- Определение состава выходного сообщения
Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S (Список поставщиков определенного товара, поставляющих товары группы «Хлебобулочные изделия», и данные для работы с поставщиками):
S (Категория, Название, Обращаться к, Должность Адрес, Город, Область, Индекс, Страна, Телефон, Факс, Домашняя страница, Код товара, Марка)
Список поставщиков определенного товара, поставляющих товары группы «Хлебобулочные изделия», и данные для работы с поставщиками
| Категория | Название | Обращаться к | Должность | Адрес | Город | Область | Индекс | Страна | Телефон | Факс | Домашняя страница | Код товара | Марка |
Реквизиты являются обязательным по условию задачи.
- Разработка модели процесса
Определяем состав полей и таблиц, используемых в запросе, из схемы № 1 (рис.4, база данных «Борей»).
Рисунок 4 – Схема данных БД «Борей»
Представляем в графическом виде обобщенную схему задачи (рис. 5).
| Поставщики |
| Типы |
| Выборка списка поставщиков определенного товара, поставляющих товары группы «Хлебобулочные изделия», и данные для работы с поставщиками |
| Список поставщиков определенного товара, поставляющих товары группы «Хлебобулочные изделия», и данные для работы с поставщиками |
| Товары |
Рисунок 5 – Обобщенная функционально-технологическая схема задачи
Необходимо выбрать список поставщиков определенного товара, поставляющих товары группы «Хлебобулочные изделия», и данные для работы с поставщиками. Данные таблицы образуют часть схемы данных, используемую для решения задачи, поэтому других таблиц на входе процесса нет. На выходе процесса представлено сообщение с определенной в предыдущем пункте структурой.
- Общее описание процесса решения задачи
Выборка списка поставщиков определенного товара, поставляющих товары группы «Хлебобулочные изделия», и данные для работы с поставщиками.
Запрос является запросом с условием по типу товара. Результат запроса меняется в динамике по мере добавления новых заказов в таблицу Товары.
Данные, одновременно необходимые в большой компании многим потребителям, размещаются на сервере сети в коллективно используемой корпоративной базе данных, функционирующей под управлением Microsoft SQL Server. СУБД используется под WindowsServer. Работа с базой данных в Access осуществляется с использованием соответствующего *.mdb файла.
Подготовка запроса в Access при использовании *.mdb файла с использованием Конструктора, поскольку нее данные находятся в связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. Запрос передается серверу, который возвращает клиенту таблицу. Выполнение процедур создания и исполнения запроса осуществляется на рабочей станции и на сервере сети.
- Представление подсхемы базы данных
Рисунок 6 – Подсхема базы данных
Таблица Поставщики имеет простой ключ КодПоставщика. Таблица Товары на работы имеет простой ключ КодТовара. Таблица Типы имеет простой ключ КодТипа. Между собой таблицы находятся в отношении «один-ко-многим». По отношению к таблице Товары таблица Поставщики является главной. Так же и таблица Типы является главной. Все изменения, внесенные в таблицуПоставщики или Типыотражаются в подчиненной таблице Товары.
- Подготовка контрольного примера
Процедуры реляционной обработки данных выполняются вручную. Представляем значения исходных данных в таблицах.
Таблица Поставщики (фрагмент)
| Название | Обращаться к | Должность | Адрес | Город | Область | Индекс | Страна | Телефон | Факс | Домашняя страница |
| PB Knackebrod AB | LarsPeterson | Продавец | Kaloadagatan 13 | Гетеборг | S-345 67 | Швеция | 031-987 65 43 | 031-987 65 91 | ||
| PlutzerLebensmittelgrossmarkte AG | MartinBein | Менеджер по связям | Bogenallee 51 | Франкфурт | 60439 | Германия | (069) 992755 | |||
| LekaTrading | ChandraLeka | Совладелец | 471 SerangoonLoop, Suite #402 | Сингапур | 0512 | Сингапур | 555-8787 | |||
| G’day, Mate | WendyMackenzie | Представитель | 170 Prince Edward Parade Hunter’s Hill | Сидней | NSW | 2042 | Австралия | (02) 555-5914 | (02) 555-4873 | |
| Pasta Buttinis.r.l. | GiovanniGiudici | Координатор | ViadeiGelsomini, 153 | Салерно | 84100 | Италия | (089) 6547665 | (089) 6547667 |
Таблица Типы (фрагмент)
| Категория |
| Напитки |
| Приправы |
| Кондитерские изделия |
| Молочные продукты |
| Хлебобулочные изделия |
| Мясо/птица |
| Фрукты |
| Рыбопродукты |
Таблица Товары (фрагмент)
| Код товара | Марка |
| 8 | Gustaf’sKnackebrod |
| 9 | Tunnbrod |
| 18 | WimmersguteSemmelknodel |
| 43 | SingaporeanHokkienFriedMee |
| 53 | FiloMix |
| 57 | GnocchidinonnaAlice |
| 58 | RavioliAngelo |
Результаты выполнения операций:
1 этап:
| Категория | Название | Обращаться к | Должность | Адрес | Город | Область | Индекс | Страна | Телефон | Факс | Домашняя страница | Код товара | Марка |
| Хлебобулочные изделия | PB Knackebrod AB | LarsPeterson | Продавец | Kaloadagatan 13 | Гетеборг | S-345 67 | Швеция | 031-987 65 43 | 031-987 65 91 | 8 | Gustaf’sKnackebrod | ||
| Хлебобулочные изделия | PB Knackebrod AB | LarsPeterson | Продавец | Kaloadagatan 13 | Гетеборг | S-345 67 | Швеция | 031-987 65 43 | 031-987 65 91 | 9 | Tunnbrod | ||
| Напитки | RefrescosAmericanas LTDA | CarlosDiaz | Главный менеджер | Av. dasAmericanas 12.890 | Сан-Паулу | 5442 | Бразилия | (11) 555 4640 | 10 | GuaranaFantastica | |||
| Хлебобулочные изделия | PlutzerLebensmittelgrossmarkte AG | MartinBein | Менеджер по связям | Bogenallee 51 | Франкфурт | 60439 | Германия | (069) 992755 | 18 | WimmersguteSemmelknodel | |||
| Напитки | BigfootBreweries | CherylSaylor | Местный представитель | 3400 — 8th Avenue Suite 210 | Бенд | OR | 97101 | США | (503) 555-9931 | 21 | LaughingLumberjackLager | ||
| Напитки | Pavlova, Ltd. | IanDevling | Главный менеджер | 74 RoseSt. MooniePonds | Мельбурн | Victoria | 3058 | Австралия | (03) 444-2343 | (03) 444-6588 | 24 | OutbackLager | |
| Напитки | PlutzerLebensmittelgrossmarkte AG | MartinBein | Менеджер по связям | Bogenallee 51 | Франкфурт | 60439 | Германия | (069) 992755 | 29 | RhonbrauKlosterbier | |||
| Напитки | KarkkiOy | AnneHeikkonen | Товаровед | Valtakatu 12 | Лапинранта | 53120 | Финляндия | (953) 10956 | 30 | Lakkalikoori | |||
| Напитки | BigfootBreweries | CherylSaylor | Местный представитель | 3400 — 8th Avenue Suite 210 | Бенд | OR | 97101 | США | (503) 555-9931 | 35 | SasquatchAle | ||
| Напитки | BigfootBreweries | CherylSaylor | Местный представитель | 3400 — 8th Avenue Suite 210 | Бенд | OR | 97101 | США | (503) 555-9931 | 36 | SteeleyeStout | ||
| Напитки | Auxjoyeuxecclesiastiques | GuylineNodier | Менеджер по продажам | 203, RuedesFrancs-Bourgeois | Париж | 75004 | Франция | (1) 03.83.00.68 | (1) 03.83.00.62 | 39 | CotedeBlaye | ||
| Напитки | Auxjoyeuxecclesiastiques | GuylineNodier | Менеджер по продажам | 203, RuedesFrancs-Bourgeois | Париж | 75004 | Франция | (1) 03.83.00.68 | (1) 03.83.00.62 | 40 | Chartreuseverte | ||
| Хлебобулочные изделия | LekaTrading | ChandraLeka | Совладелец | 471 SerangoonLoop, Suite #402 | Сингапур | 0512 | Сингапур | 555-8787 | 43 | SingaporeanHokkienFriedMee | |||
| Напитки | LekaTrading | ChandraLeka | Совладелец | 471 SerangoonLoop, Suite #402 | Сингапур | 0512 | Сингапур | 555-8787 | 44 | IpohCoffee | |||
| Хлебобулочные изделия | G’day, Mate | WendyMackenzie | Представитель | 170 Prince Edward Parade Hunter’s Hill | Сидней | NSW | 2042 | Австралия | (02) 555-5914 | (02) 555-4873 | 53 | FiloMix | |
| Хлебобулочные изделия | Pasta Buttinis.r.l. | GiovanniGiudici | Координатор | ViadeiGelsomini, 153 | Салерно | 84100 | Италия | (089) 6547665 | (089) 6547667 | 57 | GnocchidinonnaAlice | ||
| Хлебобулочные изделия | Pasta Buttinis.r.l. | GiovanniGiudici | Координатор | ViadeiGelsomini, 153 | Салерно | 84100 | Италия | (089) 6547665 | (089) 6547667 | 58 | RavioliAngelo | ||
| Напитки | ООО Экзотика | Вероника Кудрявцева | Менеджер по закупкам | Большая Садовая ул. 12 | Москва | 123456 | Россия | (095) 325-2222 | (095) 325-2222 | 64 | Chai | ||
| Напитки | ООО Экзотика | Вероника Кудрявцева | Менеджер по закупкам | Большая Садовая ул. 12 | Москва | 123456 | Россия | (095) 325-2222 | (095) 325-2222 | 65 | Chang |
SELECT Типы.Категория, Поставщики.Название, Поставщики.ОбращатьсяК, Поставщики.Должность, Поставщики.Адрес, Поставщики.Город, Поставщики.Область, Поставщики.Индекс, Поставщики.Страна, Поставщики.Телефон, Поставщики.Факс, Поставщики.ДомашняяСтраница, Товары.КодТовара, Товары.Марка
FROM Типы INNER JOIN (Поставщики INNER JOIN Товары ON Поставщики.КодПоставщика = Товары.КодПоставщика) ON Типы.КодТипа = Товары.КодТипа
WITH OWNERACCESS OPTION;
2 этап:
| Категория | Название | Обращаться к | Должность | Адрес | Город | Область | Индекс | Страна | Телефон | Факс | Домашняя страница | Код товара | Марка |
| Хлебобулочные изделия | PB Knackebrod AB | LarsPeterson | Продавец | Kaloadagatan 13 | Гетеборг | S-345 67 | Швеция | 031-987 65 43 | 031-987 65 91 | 8 | Gustaf’sKnackebrod | ||
| Хлебобулочные изделия | PB Knackebrod AB | LarsPeterson | Продавец | Kaloadagatan 13 | Гетеборг | S-345 67 | Швеция | 031-987 65 43 | 031-987 65 91 | 9 | Tunnbrod | ||
| Хлебобулочные изделия | PlutzerLebensmittelgrossmarkte AG | MartinBein | Менеджер по связям | Bogenallee 51 | Франкфурт | 60439 | Германия | (069) 992755 | 18 | WimmersguteSemmelknodel | |||
| Хлебобулочные изделия | LekaTrading | ChandraLeka | Совладелец | 471 SerangoonLoop, Suite #402 | Сингапур | 0512 | Сингапур | 555-8787 | 43 | SingaporeanHokkienFriedMee | |||
| Хлебобулочные изделия | G’day, Mate | WendyMackenzie | Представитель | 170 Prince Edward Parade Hunter’s Hill | Сидней | NSW | 2042 | Австралия | (02) 555-5914 | (02) 555-4873 | 53 | FiloMix | |
| Хлебобулочные изделия | Pasta Buttinis.r.l. | GiovanniGiudici | Координатор | ViadeiGelsomini, 153 | Салерно | 84100 | Италия | (089) 6547665 | (089) 6547667 | 57 | GnocchidinonnaAlice | ||
| Хлебобулочные изделия | Pasta Buttinis.r.l. | GiovanniGiudici | Координатор | ViadeiGelsomini, 153 | Салерно | 84100 | Италия | (089) 6547665 | (089) 6547667 | 58 | RavioliAngelo |
SELECT Типы.Категория, Поставщики.Название, Поставщики.ОбращатьсяК, Поставщики.Должность, Поставщики.Адрес, Поставщики.Город, Поставщики.Область, Поставщики.Индекс, Поставщики.Страна, Поставщики.Телефон, Поставщики.Факс, Поставщики.ДомашняяСтраница, Товары.КодТовара, Товары.Марка
FROM Типы INNER JOIN (Поставщики INNER JOIN Товары ON Поставщики.КодПоставщика = Товары.КодПоставщика) ON Типы.КодТипа = Товары.КодТипа
WHERE (((Типы.Категория)=»Хлебобулочные изделия»))
WITH OWNERACCESS OPTION;
3 этап:
| Название | Обращаться к | Должность | Адрес | Город | Область | Индекс | Страна | Телефон | Факс | Домашняя страница |
| PB Knackebrod AB | LarsPeterson | Продавец | Kaloadagatan 13 | Гетеборг | S-345 67 | Швеция | 031-987 65 43 | 031-987 65 91 | ||
| PB Knackebrod AB | LarsPeterson | Продавец | Kaloadagatan 13 | Гетеборг | S-345 67 | Швеция | 031-987 65 43 | 031-987 65 91 | ||
| PlutzerLebensmittelgrossmarkte AG | MartinBein | Менеджер по связям | Bogenallee 51 | Франкфурт | 60439 | Германия | (069) 992755 | |||
| LekaTrading | ChandraLeka | Совладелец | 471 SerangoonLoop, Suite #402 | Сингапур | 0512 | Сингапур | 555-8787 | |||
| G’day, Mate | WendyMackenzie | Представитель | 170 Prince Edward Parade Hunter’s Hill | Сидней | NSW | 2042 | Австралия | (02) 555-5914 | (02) 555-4873 | |
| Pasta Buttinis.r.l. | GiovanniGiudici | Координатор | ViadeiGelsomini, 153 | Салерно | 84100 | Италия | (089) 6547665 | (089) 6547667 | ||
| Pasta Buttinis.r.l. | GiovanniGiudici | Координатор | ViadeiGelsomini, 153 | Салерно | 84100 | Италия | (089) 6547665 | (089) 6547667 |
SELECT Поставщики.Название, Поставщики.ОбращатьсяК, Поставщики.Должность, Поставщики.Адрес, Поставщики.Город, Поставщики.Область, Поставщики.Индекс, Поставщики.Страна, Поставщики.Телефон, Поставщики.Факс, Поставщики.ДомашняяСтраница
FROM Типы INNER JOIN (Поставщики INNER JOIN Товары ON Поставщики.КодПоставщика = Товары.КодПоставщика) ON Типы.КодТипа = Товары.КодТипа
WHERE (((Типы.Категория)=»Хлебобулочные изделия»))
WITH OWNERACCESS OPTION;
- Формирование и отладка запроса
Для исключения повторяющихся строк необходимо использовать следующую инструкцию SELECT DISTINCTROW.
Полный вариант SQL-запроса:
SELECT DISTINCTROW Поставщики.Название, Поставщики.ОбращатьсяК, Поставщики.Должность, Поставщики.Адрес, Поставщики.Город, Поставщики.Область, Поставщики.Индекс, Поставщики.Страна, Поставщики.Телефон, Поставщики.Факс, Поставщики.ДомашняяСтраница
FROM Типы INNER JOIN (Поставщики INNER JOIN Товары ON Поставщики.КодПоставщика = Товары.КодПоставщика) ON Типы.КодТипа = Товары.КодТипа
WHERE (((Типы.Категория)=»Хлебобулочные изделия»))
WITH OWNERACCESS OPTION;
Подготовка запроса осуществляется с использованием Конструктора запросов в следующем порядке. После открытия базы данных Борей выполняется команда Создание – Конструктор запросов. Добавляются в окно подсхемы данных необходимые таблицы, из которых выбираются поля. Далее указываются необходимые условия. Выполняется запуск запроса и проверяется результат его работы. Сохраняем запрос под именем «Список поставщиков определенного товара, поставляющих товары группы «Хлебобулочные изделия», и данные для работы с поставщиками».
Задача 4.1
Получить сведения о проектах с партнерами из Украины, которые должны быть завершены к указанной дате, включая стоимость и продолжительность.
Решение:
- Определение состава выходного сообщения
Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S (Сведения о проектах к указанной дате с партнерами из Украины):
S (Проекты КодПроекта, Проекты НазваниеПроекта, Партнеры НазваниеКомпании, Партнеры Страна, Проекты ОценочнаяСтоимость)
Сведения о проектах к указанной дате с партнерами из Украины
| Код проекта | Название | Дата Завершения Проекта | Партнер | Страна | Оценочная стоимость проекта | Продолжительность |
Реквизиты «Код проекта», «Оценочная стоимость», «Дата завершения проекта» и «Продолжительность» являются обязательными по условию задачи, остальные реквизиты используются в процедурах профилизации, сегментации и связи.
- Разработка модели процесса
Определяем состав полей и таблиц, используемых в запросе, из схемы № 4 (рис. 7, база данных «Проекты»).
Рисунок 7 – Схема данных БД «Проекты»
Представляем в графическом виде обобщенную схему задачи (рис. 8).
| Партнеры |
| Проекты |
| Выборка сведений о проектах к указанной дате с партнерами из Украины |
| Список проектов к указанной дате с партнерами из Украины |
Рисунок 8 – Обобщенная функционально-технологическая схема задачи
Поскольку условия запроса содержат данные о проектах и партнерах, то в запросе необходимо использовать таблицы Проекты и Партнеры. Связаны таблицы между собой отношением один-ко-многим. Каждый партнер может учувствовать в нескольких проектах. Данные таблиц образуют часть схемы данных, используемую для решения задачи, поэтому других таблиц на входе процесса нет. На выходе процесса представлено сообщение с определенной в предыдущем пункте структурой.
- Общее описание процесса решения задачи
Четкое выполнение проектов к указанному сроку важно во взаимоотношениях с партнерами. Запрос является запросом с условием по стране партнера и с параметром по дате завершения проекта. Результат запроса меняется в динамике изменения проектов и парнеров.
Данные, одновременно необходимые в большой компании многим потребителям, размещаются на сервере сети в коллективно используемой корпоративной базе данных, функционирующей под управлением Microsoft SQL Server. СУБД используется под WindowsServer. Работа с базой данных в Access осуществляется с использованием соответствующего *.mdb файла.
Подготовка запроса в Access при использовании *.mdb файла с использованием Конструктора, поскольку нее данные находятся в связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. Запрос передается серверу, который возвращает клиенту таблицу. Выполнение процедур создания и исполнения запроса осуществляется на рабочей станции и на сервере сети.
- Представление подсхемы базы данных
Рисунок 9 – Подсхема базы данных
Таблица Партнеры имеет простой ключ КодКлиента. Таблица Проекты имеет простой ключ КодПроекта. Между собой таблицы находятся в отношении «один-ко-многим». По отношению к таблице Проекты таблица Партнеры является главной. Все изменения, внесенные в главную таблицу, отражаются в подчиненной.
- Подготовка контрольного примера
Процедуры реляционной обработки данных выполняются вручную. Представляем значения исходных данных в таблицах.
Таблица Проекты (фрагмент)
| Код проекта | Название | Описание | Код клиента | Номер заказа | Оценочная стоимость проекта | Код сотрудника | Дата начала | Дата завершения проекта |
| 1 | ABC | Отдел продаж | 1 | 12 | 30 000,00р. | Бабкина, Ольга | 11.12.2016 | 31.05.2018 |
| 2 | DEFG | Аналитический отдел | 1 | 32 | 15 000,00р. | Бабкина, Ольга | 12.02.2016 | 30.06.2018 |
| 3 | HIJK | Архив | 2 | 90 | 45 000,00р. | Бабкина, Ольга | 01.02.2016 | 30.06.2018 |
| 4 | KLMN | Отдел продаж | 2 | 98 | 28 000,00р. | Бабкина, Ольга | 01.02.2018 | 31.03.2018 |
| 5 | ABC | Отдел продаж | 3 | 12 | 30 000,00р. | Бабкина, Ольга | 11.12.2016 | 31.05.2018 |
| 6 | DEFG | Аналитический отдел | 3 | 32 | 15 000,00р. | Бабкина, Ольга | 12.02.2016 | 30.06.2018 |
| 7 | HIJK | Архив | 4 | 90 | 45 000,00р. | Бабкина, Ольга | 01.02.2016 | 30.06.2018 |
| 8 | KLMN | Отдел продаж | 4 | 98 | 28 000,00р. | Бабкина, Ольга | 01.02.2018 | 31.03.2018 |
Таблица Партнеры (фрагмент)
| Код клиента | Название | Адрес | Город | Регион | Индекс | Страна | Имя | Фамилия | Должность | Телефон | Факс | Заметки |
| 1 | Белая ромашка | ул. Пятая, 5-5-55 | Москва | РФ | 123328 | Россия | Николай | Яблоков | Совладелец | (095) 155-4112 | (095) 155-4113 | |
| 2 | Ленивые пельмени | ул. Музыкальная, 57-78 | Москва | РФ | 125362 | Россия | Евгений | Самсонов | Экономист | (095) 155-7969 | (095) 155-6221 | |
| 3 | Зеленый сад | ул. Первомайская, 3-2 | Киев | Украина | 356954 | Украина | Павел | Семенов | Юрист | 6574897 | 657889 | |
| 4 | Первомай | ул. Калинина, 1 | Киев | Украина | 356954 | Украина | Илья | Васильев | Экономист | 5646548 | 56406 |
Результаты выполнения операций:
1 этап:
| Код проекта | Название | Дата завершения проекта | Название | Страна | Оценочная стоимость проекта | Продолжительность |
| 1 | ABC | 31.05.2018 | Белая ромашка | Россия | 30 000,00р. | 171 |
| 2 | DEFG | 30.06.2018 | Белая ромашка | Россия | 15 000,00р. | 504 |
| 3 | HIJK | 30.06.2018 | Ленивые пельмени | Россия | 45 000,00р. | 515 |
| 4 | KLMN | 31.03.2018 | Ленивые пельмени | Россия | 28 000,00р. | 58 |
| 5 | ABC | 31.05.2018 | Зеленый сад | Украина | 30 000,00р. | 171 |
| 6 | DEFG | 30.06.2018 | Зеленый сад | Украина | 15 000,00р. | 504 |
| 7 | HIJK | 30.06.2018 | Первомай | Украина | 45 000,00р. | 515 |
| 8 | KLMN | 31.03.2018 | Первомай | Украина | 28 000,00р. | 58 |
SELECT Проекты.КодПроекта, Проекты.НазваниеПроекта, Проекты.ДатаЗавершенияПроекта, Партнеры.НазваниеКомпании AS Партнер, Партнеры.Страна, Проекты.ОценочнаяСтоимость, DateDiff(«d»,[Проекты]![ДатаНачалаПроекта],[Проекты]![ДатаЗавершенияПроекта]) AS Продолжительность
FROM Партнеры INNER JOIN Проекты ON Партнеры.КодКлиента = Проекты.КодКлиента;
2 этап:
| Код проекта | Название | Дата завершения проекта | Название | Страна | Оценочная стоимость проекта | Продолжительность |
| 5 | ABC | 31.05.2018 | Зеленый сад | Украина | 30 000,00р. | 171 |
| 6 | DEFG | 30.06.2018 | Зеленый сад | Украина | 15 000,00р. | 504 |
| 7 | HIJK | 30.06.2018 | Первомай | Украина | 45 000,00р. | 515 |
| 8 | KLMN | 31.03.2018 | Первомай | Украина | 28 000,00р. | 58 |
SELECT Проекты.КодПроекта, Проекты.НазваниеПроекта, Проекты.ДатаЗавершенияПроекта, Партнеры.НазваниеКомпании AS Партнер, Партнеры.Страна, Проекты.ОценочнаяСтоимость, DateDiff(«d»,[Проекты]![ДатаНачалаПроекта],[Проекты]![ДатаЗавершенияПроекта]) AS Продолжительность
FROM Партнеры INNER JOIN Проекты ON Партнеры.КодКлиента = Проекты.КодКлиента
WHERE (((Партнеры.Страна)=»украина»));
3 этап:
| Код проекта | Название | Дата завершения проекта | Название | Страна | Оценочная стоимость проекта | Продолжительность |
| 5 | ABC | 31.05.2018 | Зеленый сад | Украина | 30 000,00р. | 171 |
| 8 | KLMN | 31.03.2018 | Первомай | Украина | 28 000,00р. | 58 |
SELECT Проекты.КодПроекта, Проекты.НазваниеПроекта, Проекты.ДатаЗавершенияПроекта, Партнеры.НазваниеКомпании AS Партнер, Партнеры.Страна, Проекты.ОценочнаяСтоимость, DateDiff(«d»,[Проекты]![ДатаНачалаПроекта],[Проекты]![ДатаЗавершенияПроекта]) AS Продолжительность
FROM Партнеры INNER JOIN Проекты ON Партнеры.КодКлиента = Проекты.КодКлиента
WHERE (((Проекты.ДатаЗавершенияПроекта)<[Завершены до даты:]) AND ((Партнеры.Страна)=»украина»));
- Формирование и отладка запроса
Для исключения повторяющихся строк необходимо использовать следующую инструкцию SELECT DISTINCTROW.
Полный вариант SQL-запроса:
SELECT DISTINCTROW Проекты.КодПроекта, Проекты.НазваниеПроекта, Проекты.ДатаЗавершенияПроекта, Партнеры.НазваниеКомпании AS Партнер, Партнеры.Страна, Проекты.ОценочнаяСтоимость, DateDiff(«d»,[Проекты]![ДатаНачалаПроекта],[Проекты]![ДатаЗавершенияПроекта]) AS Продолжительность
FROM Партнеры INNER JOIN Проекты ON Партнеры.КодКлиента = Проекты.КодКлиента
WHERE (((Проекты.ДатаЗавершенияПроекта)<[Завершены до даты:]) AND ((Партнеры.Страна)=»украина»));
Подготовка запроса осуществляется с использованием Конструктора запросов в следующем порядке. После открытия базы данных Проекты выполняется команда Создание – Конструктор запросов. Добавляются в окно подсхемы данных необходимые таблицы, из которых выбираются поля. Далее указываются необходимые условия. Выполняется запуск запроса и проверяется результат его работы. Сохраняем запрос под именем «Сведения о проектах к указанной дате с партнерами из Украины».
Задача 2.7
Получить сведения об оплате заказов клиентами за определенный период текущего года.
Решение:
- Определение состава выходного сообщения
Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S (Оплата заказов клиентами за определенный период текущего года):
Оплата заказов клиентами за определенный период текущего года
| Код платежа | Код заказа | Сумма | Дата оплаты | Название |
Реквизиты являются обязательными по условию задачи.
- Разработка модели процесса
Определяем состав полей и таблиц, используемых в запросе, из схемы № 2 (рис. 10, база данных «Заказы на работы»).
Рисунок 10 – Схема данных БД «Заказы на работы»
Представляем в графическом виде обобщенную схему задачи (рис. 11).
| Заказы на работы |
| Клиенты |
| Выборка данных об оплате заказов клиентами за определенный период текущего года |
| Данные об оплате заказов клиентами за определенный период текущего года |
| Оплата |
Рисунок 11 – Обобщенная функционально-технологическая схема задачи
В соответствии с исходным заданием необходимо использовать таблицу Оплата, связанную отношением один-ко-многим с таблицей Заказы на работы, и таблицу Клиенты, связанную отношением один-ко-многим с таблицей Заказы на работы. Один клиент может оформить множество заказов, при этом один заказ относится только к одному клиенту. Данные таблицы образуют часть схемы данных, используемую для решения задачи, поэтому других таблиц на входе процесса нет. На выходе процесса представлено сообщение с определенной в предыдущем пункте структурой.
- Общее описание процесса решения задачи
Запрос является запросом с условием по стране клиента, году оформления заказа и с параметром по периодуполучения заказа. Результат запроса меняется в динамике изменения текущего года, по мере добавления клиентов и их заказов.
Данные, одновременно необходимые в большой компании многим потребителям, размещаются на сервере сети в коллективно используемой корпоративной базе данных, функционирующей под управлением Microsoft SQL Server. СУБД используется под WindowsServer. Работа с базой данных в Access осуществляется с использованием соответствующего *.mdb файла.
Подготовка запроса в Access при использовании *.mdb файла с использованием Конструктора, поскольку нее данные находятся в связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. Запрос передается серверу, который возвращает клиенту таблицу. Выполнение процедур создания и исполнения запроса осуществляется на рабочей станции и на сервере сети.
- Представление подсхемы базы данных
Рисунок 12 – Подсхема базы данных
Таблица Клиенты имеет простой ключ Код Клиента. Таблица Заказы на работы имеет простой ключ КодЗаказа. Таблица Оплата имеет простой ключ КодОплаты. Между собой таблицы Клиенты и Заказы на работы находятся в отношении «один-ко-многим». По отношению к таблице Заказы таблицаКлиенты является главной. Все изменения, внесенные в таблицу Клиенты в подчиненной таблице. Таблица Заказы на работы является главной по отношению к таблице Оплата.
- Подготовка контрольного примера
Процедуры реляционной обработки данных выполняются вручную. Представляем значения исходных данных в таблицах.
Таблица Клиенты (фрагмент)
| Название |
| Гурманы |
| Гурманы |
| Семейный магазин |
| Семейный магазин |
| Семейный магазин |
| Сыры |
| Сыры |
| Ресторан «Дубрава» |
| Много мелочей |
Таблица Заказы на работе (фрагмент)
| Код заказа | Название |
| 1 | Гурманы |
| 2 | Гурманы |
| 3 | Семейный магазин |
| 4 | Семейный магазин |
| 5 | Семейный магазин |
| 6 | Сыры |
| 7 | Сыры |
| 8 | Ресторан «Дубрава» |
| 9 | Много мелочей |
Таблица Оплата (фрагмент)
| Код платежа | Код заказа | Сумма | Дата оплаты |
| 1 | 1 | 190,03р. | 12.03.2018 |
| 2 | 2 | 37,80р. | 12.01.2018 |
| 3 | 3 | 152,28р. | 02.01.2018 |
| 4 | 4 | 151,47р. | 20.01.2018 |
| 5 | 5 | 50,44р. | 27.01.2018 |
| 6 | 6 | 59,70р. | 14.01.2018 |
| 7 | 7 | 204,25р. | 02.02.2018 |
| 8 | 8 | 30,00р. | 02.02.2018 |
| 9 | 9 | 252,67р. | 02.09.2018 |
Результаты выполнения операций:
1 этап:
| Код платежа | Код заказа | Сумма | Дата оплаты | Название |
| 1 | 1 | 190,03р. | 12.03.2018 | Гурманы |
| 2 | 2 | 37,80р. | 12.01.2018 | Гурманы |
| 3 | 3 | 152,28р. | 02.01.2018 | Семейный магазин |
| 4 | 4 | 151,47р. | 20.01.2018 | Семейный магазин |
| 5 | 5 | 50,44р. | 27.01.2018 | Семейный магазин |
| 6 | 6 | 59,70р. | 14.01.2018 | Сыры |
| 7 | 7 | 204,25р. | 02.02.2018 | Сыры |
| 8 | 8 | 30,00р. | 02.02.2018 | Ресторан «Дубрава» |
| 9 | 9 | 252,67р. | 02.09.2018 | Много мелочей |
SELECT Оплата.КодОплаты, Оплата.КодЗаказа, Оплата.СуммаОплаты, Оплата.ДатаОплаты, Клиенты.НазваниеКомпании
FROM (Клиенты INNER JOIN [Заказы на работы] ON Клиенты.КодКлиента = [Заказы на работы].КодКлиента) LEFT JOIN Оплата ON [Заказы на работы].КодЗаказа = Оплата.КодЗаказа;
2 этап:
| Код платежа | Код заказа | Сумма | Дата оплаты | Название | Год | Дата оплаты |
| 1 | 1 | 190,03р. | 12.03.2018 | Гурманы | 2018 | 12.03.2018 |
| 2 | 2 | 37,80р. | 12.01.2018 | Гурманы | 2018 | 12.01.2018 |
| 3 | 3 | 152,28р. | 02.01.2018 | Семейный магазин | 2018 | 02.01.2018 |
| 4 | 4 | 151,47р. | 20.01.2018 | Семейный магазин | 2018 | 20.01.2018 |
| 5 | 5 | 50,44р. | 27.01.2018 | Семейный магазин | 2018 | 27.01.2018 |
| 6 | 6 | 59,70р. | 14.01.2018 | Сыры | 2018 | 14.01.2018 |
| 7 | 7 | 204,25р. | 02.02.2018 | Сыры | 2018 | 02.02.2018 |
| 8 | 8 | 30,00р. | 02.02.2018 | Ресторан «Дубрава» | 2018 | 02.02.2018 |
| 9 | 9 | 252,67р. | 02.09.2018 | Много мелочей | 2018 | 02.09.2018 |
SELECT Оплата.КодОплаты, Оплата.КодЗаказа, Оплата.СуммаОплаты, Оплата.ДатаОплаты, Клиенты.НазваниеКомпании, Year([ДатаОплаты]) AS год, Оплата.ДатаОплаты
FROM (Клиенты INNER JOIN [Заказы на работы] ON Клиенты.КодКлиента = [Заказы на работы].КодКлиента) LEFT JOIN Оплата ON [Заказы на работы].КодЗаказа = Оплата.КодЗаказа
WHERE (((Year([ДатаОплаты]))=Year(Date())) AND ((Оплата.ДатаОплаты)>=[Начало периода:] And (Оплата.ДатаОплаты)<=[Конец периода:]));
- Формирование и отладка запроса
Для исключения повторяющихся строк необходимо использовать следующую инструкцию SELECT DISTINCTROW.
| Код платежа | Код заказа | Сумма | Дата оплаты | Название | Дата оплаты |
| 1 | 1 | 190,03р. | 12.03.2018 | Гурманы | 12.03.2018 |
| 2 | 2 | 37,80р. | 12.01.2018 | Гурманы | 12.01.2018 |
| 3 | 3 | 152,28р. | 02.01.2018 | Семейный магазин | 02.01.2018 |
| 4 | 4 | 151,47р. | 20.01.2018 | Семейный магазин | 20.01.2018 |
| 5 | 5 | 50,44р. | 27.01.2018 | Семейный магазин | 27.01.2018 |
| 6 | 6 | 59,70р. | 14.01.2018 | Сыры | 14.01.2018 |
| 7 | 7 | 204,25р. | 02.02.2018 | Сыры | 02.02.2018 |
| 8 | 8 | 30,00р. | 02.02.2018 | Ресторан «Дубрава» | 02.02.2018 |
| 9 | 9 | 252,67р. | 02.09.2018 | Много мелочей | 02.09.2018 |
Полный вариант SQL-запроса:
SELECT DISTINCTROW Оплата.КодОплаты, Оплата.КодЗаказа, Оплата.СуммаОплаты, Оплата.ДатаОплаты, Клиенты.НазваниеКомпании, Year([ДатаОплаты]) AS год, Оплата.ДатаОплаты
FROM (Клиенты INNER JOIN [Заказы на работы] ON Клиенты.КодКлиента = [Заказы на работы].КодКлиента) LEFT JOIN Оплата ON [Заказы на работы].КодЗаказа = Оплата.КодЗаказа
WHERE (((Year([ДатаОплаты]))=Year(Date())) AND ((Оплата.ДатаОплаты)>=[Начало периода:] And (Оплата.ДатаОплаты)<=[Конец периода:]));
Подготовка запроса осуществляется с использованием Конструктора запросов в следующем порядке. После открытия базы данных Заказы на работы выполняется команда Создание – Конструктор запросов. Добавляются в окно подсхемы данных необходимые таблицы, из которых выбираются поля. Далее указываются необходимые условия. Выполняется запуск запроса и проверяется результат его работы. Сохраняем запрос под именем «Оплата заказов клиентами за определенный период текущего года».
Задача 6.15
Имеются ли в составе портфелей бумаги, эмиссия которых была осуществлена ранее указанной даты, и в каком количестве?
Решение:
- Определение состава выходного сообщения
Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S (Бумаги в составе портфелей с эмиссией до указанной даты):
S (Агенты КодАг, Заявки на продажу КодБум, Заявки на продажу Объем заявкиПрНач, Портфели Кол)
Бумаги в составе портфелей с эмиссией до указанной даты
| Код агента | Код бумаги | Количество бумаг | Код портфеля | ДатаЭм |
Реквизиты являются обязательными по условию задачи или используются в процедурах профилизации, сегментации и связи.
- Разработка модели процесса
Определяем состав полей и таблиц, используемых в запросе, из схемы № 6 (рис. 13, база данных «Бумаги»).
Рисунок 13 – Схема данных БД «Бумаги»
Представляем в графическом виде обобщенную схему задачи (рис. 14).
| Выборка сведенийо бумагах в составе портфелей с эмиссией до указанной даты |
| Список данных о бумагах в составе портфелей с эмиссией до указанной даты |
| Портфели |
| Бумаги |
Рисунок 14 – Обобщенная функционально-технологическая схема задачи
В запросе необходимо использовать данные из таблиц Портфели, Бумаги, так как необходимо выбрать бумаги в составе портфелей с эмиссией до указанной даты. Данные таблиц образуют часть схемы данных, используемую для решения задачи, поэтому других таблиц на входе процесса нет. На выходе процесса представлено сообщение с определенной в предыдущем пункте структурой.
- Общее описание процесса решения задачи
Выполнение запроса помогает увидеть бумаги в составе портфелей с эмиссией до указанной даты.
Данные, одновременно необходимые в большой компании многим потребителям, размещаются на сервере сети в коллективно используемой корпоративной базе данных, функционирующей под управлением Microsoft SQL Server. СУБД используется под WindowsServer. Работа с базой данных в Access осуществляется с использованием соответствующего *.mdb файла.
Подготовка запроса в Access при использовании *.mdb файла с использованием Конструктора, поскольку нее данные находятся в связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. Запрос передается серверу, который возвращает клиенту таблицу. Выполнение процедур создания и исполнения запроса осуществляется на рабочей станции и на сервере сети.
- Представление подсхемы базы данных
Рисунок 15 – Подсхема базы данных
Таблица Портфели имеет составной ключ «КодАг», «КодБум». Таблица Бумаги имеет простой ключ «КодБум». Между собой таблицы находятся в отношении «один-ко-многим». Все изменения, внесенные в главные таблицы, отражаются в подчиненных.
- Подготовка контрольного примера
Процедуры реляционной обработки данных выполняются вручную. Представляем значения исходных данных в таблицах.
Таблица Портфели (фрагмент)
| Код агента | Код бумаги | Количество бумаг | Код портфеля |
| 1 | 301 | 100 | 0 |
| 2 | 301 | 0 | 0 |
| 3 | 301 | 0 | 0 |
| 4 | 301 | 900 | 0 |
| 5 | 301 | 900 | 0 |
| 6 | 301 | 0 | 0 |
| 7 | 301 | 0 | 0 |
| 8 | 301 | 0 | 0 |
| 10 | 301 | 900 | 0 |
| 11 | 301 | 0 | 0 |
Таблица Бумаги (фрагмент)
| Код бумаги | Наименование бумаги | ДатаЭм |
| 101 | ОАО «Автоматика-Север» | 10.01.2015 |
| 201 | Красная шапочка | 01.10.2016 |
| 301 | Индиго-банк | 20.10.2017 |
Результаты выполнения операций:
1 этап:
| Код агента | Код бумаги | Количество бумаг | Код портфеля | Код бумаги | Наименование бумаги | ДатаЭм |
| 1 | 301 | 100 | 0 | 301 | Индиго-банк | 20.10.2017 |
| 2 | 301 | 0 | 0 | 301 | Индиго-банк | 20.10.2017 |
| 3 | 301 | 0 | 0 | 301 | Индиго-банк | 20.10.2017 |
| 4 | 301 | 900 | 0 | 301 | Индиго-банк | 20.10.2017 |
| 5 | 301 | 900 | 0 | 301 | Индиго-банк | 20.10.2017 |
| 6 | 301 | 0 | 0 | 301 | Индиго-банк | 20.10.2017 |
| 7 | 301 | 0 | 0 | 301 | Индиго-банк | 20.10.2017 |
| 8 | 301 | 0 | 0 | 301 | Индиго-банк | 20.10.2017 |
| 10 | 301 | 900 | 0 | 301 | Индиго-банк | 20.10.2017 |
| 11 | 301 | 0 | 0 | 301 | Индиго-банк | 20.10.2017 |
SELECT Портфели.КодАг, Портфели.КодБум, Портфели.Кол, Портфели.КодПорт, Бумаги.КодБум, Бумаги.НаимБум, Бумаги.ДатаЭм
FROM Бумаги INNER JOIN Портфели ON Бумаги.КодБум = Портфели.КодБум;
2 этап:
| Код агента | Код бумаги | Количество бумаг | Код портфеля | Код бумаги | Наименование бумаги | ДатаЭм |
| 1 | 101 | 2000 | 0 | 101 | ОАО «Автоматика-Север» | 10.01.2015 |
| 2 | 101 | 0 | 0 | 101 | ОАО «Автоматика-Север» | 10.01.2015 |
| 3 | 101 | 100 | 0 | 101 | ОАО «Автоматика-Север» | 10.01.2015 |
| 4 | 101 | 100 | 0 | 101 | ОАО «Автоматика-Север» | 10.01.2015 |
| 5 | 101 | 0 | 0 | 101 | ОАО «Автоматика-Север» | 10.01.2015 |
| 6 | 101 | 200 | 0 | 101 | ОАО «Автоматика-Север» | 10.01.2015 |
| 7 | 101 | 0 | 0 | 101 | ОАО «Автоматика-Север» | 10.01.2015 |
| 8 | 101 | 2000 | 0 | 101 | ОАО «Автоматика-Север» | 10.01.2015 |
| 9 | 101 | 0 | 0 | 101 | ОАО «Автоматика-Север» | 10.01.2015 |
| 10 | 101 | 0 | 0 | 101 | ОАО «Автоматика-Север» | 10.01.2015 |
| 11 | 101 | 0 | 0 | 101 | ОАО «Автоматика-Север» | 10.01.2015 |
SELECT Портфели.КодАг, Портфели.КодБум, Портфели.Кол, Портфели.КодПорт, Бумаги.КодБум, Бумаги.НаимБум, Бумаги.ДатаЭм
FROM Бумаги INNER JOIN Портфели ON Бумаги.КодБум = Портфели.КодБум
WHERE (((Бумаги.ДатаЭм)<=[Введите дату эмиссии:]));
- Формирование и отладка запроса
Для исключения повторяющихся строк необходимо использовать следующую инструкцию SELECT DISTINCTROW.
Полный вариант SQL-запроса:
SELECT DISTINCTROW Портфели.КодАг, Портфели.КодБум, Портфели.Кол, Портфели.КодПорт, Бумаги.КодБум, Бумаги.НаимБум, Бумаги.ДатаЭм
FROM Бумаги INNER JOIN Портфели ON Бумаги.КодБум = Портфели.КодБум
WHERE (((Бумаги.ДатаЭм)<=[Введите дату эмиссии:]));
Подготовка запроса осуществляется с использованием Конструктора запросов в следующем порядке. После открытия базы данных Бумаги выполняется команда Создание – Конструктор запросов. Добавляются в окно подсхемы данных необходимые таблицы, из которых выбираются поля. Далее указываются необходимые условия. Выполняется запуск запроса и проверяется результат его работы. Сохраняем запрос под именем «Бумаги в составе портфелей с эмиссией до указанной даты».
Прикрепленные файлы: |
|
|---|---|
|
Администрация сайта не рекомендует использовать бесплатные работы для сдачи преподавателю. Эти работы могут не пройти проверку на уникальность. Узнайте стоимость уникальной работы, заполните форму ниже: Узнать стоимость |
|
Скачать файлы:
|
Скриншоты работы: |
|
|---|---|
|
|
|
