Създаване на кръстосана заявка в Microsoft Office Access

Създаване на кръстосана заявка в Microsoft Office Access

Posted by dbalinov on Съб., 03/02/2013 - 16:14

Кръстосаните заявки (Crosstab заявките) пресмятат сумата, броя или прилагат друга агрегатна функция, като след това групират резултата в 2 множества от стойности – едното в хоризонтална посока, другото – във вертикална.

Въведение

Кръстосаната заявка е вид select заявка. Когато се извика такава заявка, резултатите се изобразяват в таблица, която има различна структура от другите типове таблици.
Така получените таблици са по-лесни за четене от простите select заявки, които изобразяват същите данни, както е показано на следното изображение:

  1. Това е select заявка, обобщаваща данните по работник и категория.
  2. crosstab заявката може да покаже същите данни, но групира данните едновременно хоризонтално и вертикално, за да бъдат таблиците по-компактни и лесни за четене.

Упражнение

Разполагаме с БД със следната структура:

Можете да изтеглите файла от тук. ↓

Съдържат се 2 таблици – Students, в която се съхраняват данни за ученици и таблица Marks, в която се съхраняват оценките на всеки от учениците.

В БД са въведени и примерни данни.

Да се създаде заявка която да изобразява броя на всяка оценка за всеки един от учениците.

За да създадем Crosstab заявка от меню Create избираме Query Design. Появява се списък с таблиците, които ще участват в заявката – в случая избираме 2те и ги добавяме.

Прибавяме полетата Firstname от Students, Lastname от Students и Mark от Marks се добавя 2 пъти. След това натискаме бутона Crosstab в меню Design, което ще добави още един ред Crosstab в таблицата в долната част на екрана.

Възможните стойности за полето Crosstab са Row heading, Column heading и Value. Всяка Crosstab заявка може да има няколко Row heading полета, 1 Column heading поле и 1 Value поле.

В случая задаваме Row heading за Fristname и Family. Задаваме Column Heading за първото поле Mark, а за 2рото поле Mark задаваме Value. Необходимо е само да зададем агрегатна функция. За нашата задача се иска броят на оценките и затова ще зададем агрегатна функция Count над полето, в което стои стойността Value.

Запазваме заявката и когато я пуснем вече можем да видим резултата от нея.