Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Завдання 1_1.doc
Скачиваний:
1
Добавлен:
12.09.2019
Размер:
1.37 Mб
Скачать

Insert into Довідник ( [Код діяльності], [Назва діяльності] )

SELECT 2055 AS [Код діяльності], "НАукова" AS [Назва діяльності]

FROM Довідник;

Визначити загальний прибуток і суму податку кожного виду діяльності за травень. Запит повинен містити поле «!Назва діяльності»

SELECT Довідник.[Назва діяльності], Sum(Прибуток.Прибуток) AS [Sum-Прибуток], [Ставка податку].[Ставка податку(%)], Прибуток.Дата, Sum([Ставка податку(%)]/[Прибуток]/100) AS [Сума податку]

FROM [Ставка податку] INNER JOIN (Довідник INNER JOIN Прибуток ON Довідник.[Код діяльності] = Прибуток.[Код діяльності]) ON (Довідник.[Код діяльності] = [Ставка податку].[Код діяльності]) AND ([Ставка податку].[Код діяльності] = Прибуток.[Код діяльності])

GROUP BY Довідник.[Назва діяльності], [Ставка податку].[Ставка податку(%)], Прибуток.Дата

HAVING (((Прибуток.Дата) Like "*05.2007"));

Завдання 22

Структура таблиць

Кожна з наведених таблиць має певний набір полів з заданим типом даних. На малюнку показана таблиця у режимы конструктора. Перший стовпчик – назва полів , а другий – тип даних, що будуть міститися у даних полях.

Ключовим полем визначаємо поле КодПрацівника у першій та друій таблиці так як лише воно може бути унікальними за логікою.

Опис створення індексів за полями «Рік» та «Місяць», «Відпрацьовано» таблиці «Табель»:

Відкриємо таблицю в режимі Коструктора натиснувши при виділеному об’єкті кнопку. Виділяємо по черзі вказані поля та у розділі «Свойства» вибираємо рядок «Индексированное поле» та вибираємо з випадаючого списку позицію Да( Совпадения допускаються) . Переглянути індекси можна у вікні «Индекси», що викликається командою Вид-Индекси.

Звязки між таблицями:

Логічно зв’язки доцільно встановити у вигляді: (мал.)

Отже між таблицями «ДОВІдник» та «Табель» та «ДеннаСтавка…» існує зв’язок один до багатьох.

2. Вибрати ПІБ, рік, місяць, відпрацьовано, денну ставку, розмір заробітної (=Відпрацьовано* Денна ставка) за 11 місяць 2006р.

SELECT Довідник.ПІБ, Табель.Рік, Табель.Місяць, Табель.Відпрацьовано, [Денна ставка].[Денна ставка], [Денна ставка]*[Відпрацьовано] AS [Заробітна плата]

FROM ([Денна ставка] INNER JOIN Довідник ON [Денна ставка].[Код працівника] = Довідник.[Код працівника]) INNER JOIN Табель ON (Довідник.[Код працівника] = Табель.[Код працівника]) AND ([Денна ставка].[Код працівника] = Табель.[Код працівника])

WHERE (((Табель.Рік)=2006) AND ((Табель.Місяць)=11));

Замінити денну ставку на 48,5 працівника з кодом 0001.

UPDATE [Денна ставка] SET [Денна ставка].[Денна ставка] = 48.5

WHERE ((([Денна ставка].[Код працівника])="0001"));

Вилучити записи за травень 2007р з таблиці “Табель”.

DELETE Табель.Рік, Табель.Місяць

FROM Табель

WHERE (((Табель.Рік)=2007) AND ((Табель.Місяць)=5));

Додати запис у довідник “КодПрацівника”=2055, “ПІБ” = “Яремчук Н.А.”.

Insert into Довідник ( [Код працівника], піб )

SELECT 2055 AS [Код працівника], 'Яремчук Н.А.' AS ПІБ

FROM Довідник;

Визначити загальний відпрацьований час і заробіток кожного працівника. за 2006р. Запит повинен містити поле “ПІБ”.

SELECT Довідник.ПІБ, [Денна ставка].[Денна ставка], Табель.Рік, Sum(Табель.Відпрацьовано) AS [Sum-Відпрацьовано], Sum([Денна ставка]*[Відпрацьовано]) AS Заробіток

FROM ([Денна ставка] INNER JOIN Довідник ON [Денна ставка].[Код працівника] = Довідник.[Код працівника]) INNER JOIN Табель ON (Довідник.[Код працівника] = Табель.[Код працівника]) AND ([Денна ставка].[Код працівника] = Табель.[Код працівника])

GROUP BY Довідник.ПІБ, [Денна ставка].[Денна ставка], Табель.Рік

HAVING (((Табель.Рік)=2006));

Завдання 23

Структура таблиць

Кожна з наведених таблиць має певний набір полів з заданим типом даних. На малюнку показана таблиця у режимы конструктора. Перший стовпчик – назва полів , а другий – тип даних, що будуть міститися у даних полях.

Ключовим полем визначаємо поле КодДобрива у першій та другій таблиці так як лише воно може бути унікальними за логікою.

Опис створення індексів за полями «Рік» та «Фірма», «Площа» таблиці «Оброблена Площа»:

Відкриємо таблицю в режимі Коструктора натиснувши при виділеному об’єкті кнопку. Виділяємо по черзі вказані поля та у розділі «Свойства» вибираємо рядок «Индексированное поле» та вибираємо з випадаючого списку позицію Да( Совпадения допускаються) . Переглянути індекси можна у вікні «Индекси», що викликається командою Вид-Индекси.

Звязки між таблицями:

Логічно зв’язки доцільно встановити у вигляді: (мал.)

Отже між таблицями «ДОВІдник» та «Норма…» та «Оброблена…» існує зв’язок один до багатьох.

2.Вибрати назву добрива, рік, фірму, площу, норму, витрати добрив (=Площа* Норма) за 2006р.

SELECT Довідник.[Назва добрива], [Оброблена площа].Рік, [Оброблена площа].Фірма, [Оброблена площа].Площа, [Норма витрати].Норма, [Площа]*[Норма] AS [Витрати добрив]

FROM (Довідник INNER JOIN [Норма витрати] ON Довідник.[Код добрива] = [Норма витрати].[Код добрива]) INNER JOIN [Оброблена площа] ON ([Норма витрати].[Код добрива] = [Оброблена площа].[Код добрива]) AND (Довідник.[Код добрива] = [Оброблена площа].[Код добрива])

WHERE ((([Оброблена площа].Рік)=2006));

Замінити денну норму витрат на 48,5 добрива з кодом 0001.

UPDATE [Норма витрати] SET [Норма витрати].Норма = 48.5

WHERE ((([Норма витрати].[Код добрива])="0001"));

Вилучити записи 2007р з таблиці “ОбробленаПлоща”.

DELETE [Оброблена площа].Рік

FROM [Оброблена площа]

WHERE ((([Оброблена площа].Рік)=2007));

Додати запис у довідник “КодДобрива”=2055, “НазваДобрива” = “Мочевина-65”.