Решени задачи с Аccess 2010 queries

Информатика и компютърни науки Бизнес информатика Решени задачи

Задачи за запитвания
(
Queries
)
Задачите са свързани с примерната БД на фирма
“NorthWind traders

NorthWind.mdb
с познататаЗадачите
с
а

свързани с примерната БД на фирма “NorthWind traders” NorthW
ind.mdb с познатата схема :

Схемата на базата данни показва таблиците и връзките между тях.
Всяка таблица е представена с правоъгълно прозо
рче. В заг
лавната лента
е
и
м
е
то на таблицата, а в прозорчето са имената на колонките. Таблица Customers изглежда така:

Както се вижда в схемата на базата данни за всяк
а
таблица са записани

Схе
ССхемата на базата данни показва таблиците и връзките между тях.
Всяка таблица е представена с правоъгълно прозорче. В заглавната лента е името на таблицата, а в прозорчето са имената на
колонките. Таб
лица Customers изглежда така:

Както се вижда в схематВсяка таблица е представена с правоъгълно прозорче. В заглавната лента е името на таблицата, а в прозорчето са имената на колонките. Таблица Customers изглежда така:

Както се вижда в схемата на базата данни за всяка таблица са записани само имената на колонките, т.е. антетката, а таблицата е завъртяна на 90
о. За да си представим реалната табл
ица е необходимо да я транспонираме, което означава редовет
е
да станат колонки.

Едно или
н
яколко полета във всяка таблица са маркирани отпред със символ, който прилича на ключ. Понятието ключ (първичен и външен) е основно при релационните бази данн
и. Всяк
о поле, което изпълнява ролята на първичен ключ трябва
д

Как
ККакто се
ви
жда в схем
ата на базата данни за всяка таблица са записани само имената на колонките, т.е.
антетката, а таблиц
ата е завъртяна на 90о. За да си представим реалната таблица е необходимо да я транспонираме, което означава редовете да станат колонки.
Едно или няколко полета във вс
я
ка
т

Запитв
ЗЗапитвания

(Querie
s
)
са обекти, които се получават от свързаните
таблици и се използ
в
ат за извличане и
обработка на данните

о
т
базата данни.В известен смисъл те са виртуални таблици, които
не се съхраняват в базата данни. М
EEто ги и задачите!
Какъв е оборотът по служители? Отговорът е таблица с дКакъв е оборотът по служители?
Отговорът
е таблица с дв
е
к
о
л
они:
Име на служителя (FirstName от таблица EmployeesОборот=∑ Quantity * UnitPrice от таблица OrderDetailsВ схемата на БД между двете таб
л
ици стои таблица Orders и тя трябва да се включи в запитваИме на служителя (FirstName от таблица EmployeesОборот=∑ Quantity * UnitPrice от таблица OrderDetailsВ схемата на БД между двете таблици стои таблица Or
ders и тя тряб
ва да се включи в запитванеОборот=∑ Quantity * UnitPrice от таблица OrderDetailsВ схемата на БД между двете таблици стои таблица Orders и тя трябва да се включи в запитването. Ето и стъпките за създаване на запитването (Query) в среда на AccВВ схемата на БД между двете таблици стои таблица Orders и тя трябва да се включи в запитването. Ето и стъпките за създава
не на запитването (Query) в среда на
Access 2007.
Create/Query Design
Появява се диалогов пр
о
зорец Show Table за
избор на та
б
лиците. Избираме трите таблици и затваряме прозорец Show Table! 
Чрез Drag &Drop, или Double Click смъкваме поле FirstName. След това се позиционираме н
а втора
та колонка и натискаме десен бутон, за да се появи кон
текстно меню и избира
ме
. Появяв
се Expression Builder (помощник за изчислими колонки)
В Прозореца на помощни
ка избираме обекти T
ables 1 и избираме Order Details 2. След това чрез DblClick 3 прехвърляме горе поле
Create/Query Design

Появява

с
е диалогов прозорец Show Table за избор на т
а
Поя Появява се
д
иалогов прозорец
Show Table за избор
н
а

таблиците. Избираме трите таблици и затваряме прозорец Show Ta
ble! 
Чрез Drag &Drop, или Double Click смъкваме поле FirstName. След това се позиционираме на втората колонка и натискаме десен бутон, за
да се поя
ви контекстно
ме
н
ю

и избираме . Появяв се Expression Builder (помощник за изчислими колонки)
В Прозореца на помощника избираме обекти Tables 1 и избираме Ord
e
r Details 2. След това чрез DblClick 3 прехвърляме горе по Чрез Drag &Drop, или Double Click смъкваме поле FirstName. След това се позиционираме на втората колонка и натискаме десен бутон, за да се появи контекс
тно меню и изб
ираме . Появяв се Expression Builder (помощник за изчислими колонки)
В Прозореца на помощника избираме обекти Tables 1 и избираме Order Details 2. След това чрез DblClick 3 прехвърляме горе поле Quantity. След него (с clik ) * 4 и UnitPrice 5 , а на края с 6 (ОК) затваряме .
В резултатната Получава се таблица следното: 
Сега трябва да задействаме бутон ,
Този бутон указва да се групират отд
елните продажби по името на служителя и да се обобщят, коет
о
води до появата на н
ов ред в ре
з
ултатната таблица. Там избираме както е показано, което вербално звучи така: „ Групирай (Group By) по име на служител и сумирай (SuM) оборота!” и подреди нам
аляващо
(DESCENDING) 
След задействане на бутон  получаваме
: 
CategoryId (cat
eg
ories)Cat
egoryName (Categories)Оборот (OrderDetai
В П В Прозореца на помощника избирам
е обекти Tables 1 и
избираме Order Details 2. След това чрез DblClick 3 прехвърляме горе поле Quantity. След него (с clik ) * 4 и UnitPrice 5 , а на края с 6 (ОК) затваряме .
В резултат
н
ата

Оборот (OrderDetails)
Какъв
е

оборотът по групи стоки? Резултатната таблица
е: Запит Какъв е

оборотът по групи
стоки? Резултатната
т
а
б
лица е: Запитването изглежда така: А резултатът е: 
Както се
вижда, ако пред формулата напишем Оборот:, то изчислимата колонка получава име.
Да съхраним запитването с име QOborotGrupiProducti, защото ще г
о използва
ме по-късно.
К
а
к
ъ
в е оборотът по стоки? Подобно на зад. 2, но без Categories! Можем вече да използваме редът Criteria. Така се поставя Филтър( >40Както се вижд
а
, ако пред формулата напишем Оборот:, то изчислимата колонка получава име.
Да съхраним запитването с име QOborotGrupiProducti, защото ще го използваме по-късно.
Какъв е оборотът по стоки? Подобно на зад. 2, но без
Categories! М
ожем вече да използваме редът Criteria. Така се поставя Филтър( >40000)! Резултатът е: 
Какъв е оборотът по кДа съхраним запитването с име QOborotGrupiProducti, защото ще го използваме по-късно.
Какъв е оборотът по стоки? Подобно на зад. 2, но без Categories! Можем вече да използваме редът Criteria. Така се поставя Филтър( >40000)! Резултатът е: 
Какъв е оборот
ът по клиенти?
Резултатът е:
Ня
кои от доставчиците дават бонус за продавачите-к
КакъКакъв

е оборотът по стоки?
Подобно на
з
ад. 2, но без Categories! Можем вече да използваме редът Criteria. Така се поставя Филтър( >40000)! Резултатът е: 
Какъв е оборотът по клиенти?
Резултатът е
:
Някои от доставчиците дават бонус за продавачите-консу
лтанти за оборота, ко
йт
о са пости
гнали. В този случай резултатната таблица трябва да съдържа данни за доставчика
, служителите и обор
ота по продуктите, каито доставя всеки доставчик. Резултатът може да е таблица със следните колони:
Доставчик от CompanyName.SuppliersСлужител FirstName.Employees
LastN
a
me.
E
Какъв е оборотът по кл
и
енти?
Р
е
з
ултатът е:
Някои от доставчиците дават б
онус за продавачите
-
консултанти за об
Резултатът е:
Ня
к
о
и
от доставчиците дават бонус з
Н
Някои оНякои от доставч
иците дават бонус за продавачите-консултанти за оборота, който са постигнали. В този случай резултатната таблица трябва да съдържа данни за дос
тавчика, с
лужителите и о
бо
р
о
т
а по продуктите, каито доставя всеки доставчик. Резултатът може да е таблица със следните колони:
Доставчик от CompanyName.SuppliersСлужител

FirstName.Employees
LastName.EmployeesОборот: от
OrderDetails
Резултатът ще бъде декартово произведение (всеки ред от едната таблица се комбинира с всички редове от другата) на таблиците Suppliers с 29 записа
и Employees с
9, т.е. 29х9 реда. Реално редовете са 255, защото някой от служителите не е продавал продукти на някой от доставчиците. Например доставчикът „Escargots Nouveaux” , който има само 7 реда (служители), които са продавали негови продукти.
Колко реда ще има резултатната таблица, ако добавим и колонка ProductName от таблица Products?!
Както се вижда името на всеки дос
тавчик се появява толкова пъти, колк
ото различни служители са продавали негови продукти.
На сле
д
ващата страница ще на
мерите отго
в
ора на въпроса!

Доставчик от CompanyName.SuppliersСлужител FirstName.Employees
LastName.EmployeesОборот: от
OrderDetails
Резултатът ще бъде дек
артово
пСлужител FirstName.Employees
LastName.EmployeesОборо
т: от
OrderDetails
Резултатът
ще бъде декартово произведеLastName.EmployeesОборот: от
OrderDetails
Резул
татът ще бъде декарт
овОборот: от
OrderDetails
Резултатът ще OrderDetails
Резултатът ще бъде декартово прои

РезуРезултатът щ
е
бъде д
е
к
артово произведение (всеки ред от едната табл
ица се комбинира с
в
сички редове от д
ругата) на таблиците
S
u
p
pliers с 29 записа и Employees с 9, т.е. 29х9 реда. Реално р
едовете са 255, защото някой от служителите не е продавал продукти на някой от доставчиците. Например доставчикът „Escargots Nouveaux” , който
има само 7
реда (служите
ли
)
,

които са продавали негови продукти.
Колко реда ще има резултатната таблица, ако добавим и колонка ProductName от таблица Products?!
Както с
е
вижда името на всеки доставчик се появява толкова пъти, колкото различни служители са продавали негови продукти.
На следващата страница ще намерите отговора на въпроса!

Колко реда ще има резултатната таблиц
а, ако добавим
и колонка ProductName от таблица Products?!
Както се вижда името на всеки доставчик се появява толкова пъти, колкото различни служители са продавали негови продукти.
На следващата страница ще намерите отговора на въпроса!

КактКакто се вижда името на всеки доставчик се появява толкова пъти, колкото различни служители са продавали негови продукти.
На следв
ащата страница ще намерите отговора
на въпроса!

На следващата страница ще намерите отго
в
ора на въпроса!

Преглед на началото - целият файл след изтегляне

Описание

Решени задачи с Аccess 2010 queries

0 коментара

Все още няма коментари. Бъдете първият, който ще коментира.

За да коментирате, трябва да сте влезли в профила си.

Влезте