Главная страница

Лабораторная работа 4. Базы данных. Отчет по операциям в 1 квартале 2007 года (название товара, имя поставщика, название склада, тип операции, количество, цена, сумма по операции)


Скачать 14.86 Kb.
НазваниеОтчет по операциям в 1 квартале 2007 года (название товара, имя поставщика, название склада, тип операции, количество, цена, сумма по операции)
АнкорЛабораторная работа 4. Базы данных
Дата10.02.2023
Размер14.86 Kb.
Формат файлаdocx
Имя файлаLab_4.docx
ТипОтчет
#930315

1.Для каждой страны из справочника COUNTRY, указать количество заказчиков из этой страны и суммарную стоимость заказов, сделанных ими

SELECT COUNTRY, COUNT(DISTINCT B.CUST_NO), SUM(TOTAL_VALUE)

FROM COUNTRY A LEFT JOIN CUSTOMER B USING(COUNTRY)

LEFT JOIN SALES USING(CUST_NO)

GROUP BY COUNTRY;

2. Для каждого отдела выдать руководителя отдела и количество сотрудников в отделе.

SELECT DEPARTMENT, B.FULL_NAME, COUNT(C.FULL_NAME)

FROM DEPARTMENT A LEFT JOIN EMPLOYEE B ON A.MNGR_NO = B.EMP_NO

LEFT JOIN EMPLOYEE C ON A.DEPT_NO=C.DEPT_NO

GROUP BY A.DEPARTMENT, B.FULL_NAME;

3. Для каждой вакансии (должность, страна, квалификация) выдать количество сотрудников, работающих на данной должности, и их средний оклад.

SELECT DISTINCT A.JOB_TITLE, A.JOB_GRADE, A.job_country, COUNT(DISTINCT B.FULL_NAME), AVG(B.SALARY)

FROM JOB A LEFT JOIN EMPLOYEE B USING(JOB_CODE, JOB_GRADE, JOB_COUNTRY)

GROUP BY A.JOB_TITLE, A.job_grade, A.JOB_COUNTRY;

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

SELECT FULL_NAME, JOB_COUNTRY

FROM EMPLOYEE

UNION

SELECT CUSTOMER, COUNTRY

FROM CUSTOMER;

Файл базы – wh_new.fdb

5. Составить список товаров, которые есть на складе «Склад 2», указать их количество и единицы измерения.

SELECT A.ID_GOODS, B.QUANTITY, A. MEASURE

FROM GOODS A LEFT JOIN GOODS_WH B USING(ID_GOODS)

JOIN WAREHOUSE C USING(ID_WH)

WHERE C.NAME = 'Склад 2';

6.Составить список всех городов, задействованных в базе данных «Учет на складе».

SELECT TOWN

FROM warehouse

UNION

SELECT TOWN

FROM AGENT;

7. Составить отчет по операциям в 1 квартале 2007 года (название товара, имя поставщика, название склада, тип операции, количество, цена, сумма по операции).

SELECT D.NOMENCLATURE, B.NAME_AG, C.NAME, A.TYPEOP, A.QUANTITY, A.PRICE, A.QUANTITY*A.PRICE, A.OP_DATE

FROM OPERATION A LEFT JOIN AGENT B USING(ID_AG)

JOIN WAREHOUSE C USING(ID_WH)

JOIN GOODS D USING(ID_GOODS)

WHERE A.OP_DATE BETWEEN '01.01.2007' AND '01.04.2007';

8. Выдать информацию об операциях с товаром «Тетрадь 12л». Должны быть указаны: дата операции, тип словами (А – «привозили», R – «увозили»), название склада, название агента, стоимость (цена*количество).

SELECT A.OP_DATE,

CASE

WHEN A.TYPEOP = 'A' THEN 'Привозили'

WHEN A.TYPEOP = 'R' THEN 'Увозили'

ELSE Null

END as TYPEOP, C.NAME, B.NAME_AG, A.QUANTITY*A.PRICE

FROM OPERATION A LEFT JOIN AGENT B USING(ID_AG)

JOIN WAREHOUSE C USING(ID_WH)

JOIN GOODS D USING(ID_GOODS)

WHERE D.NOMENCLATURE = 'Тетрадь 12л.';

9. Найти количество разных товаров, с которыми работал каждый поставщик.

SELECT NAME_AG, COUNT(DISTINCT ID_GOODS)

FROM AGENT LEFT JOIN OPERATION USING(ID_AG)

GROUP BY NAME_AG;

10. Найти минимальную стоимость операции для каждого поставщика.

SELECT NAME_AG, MIN(QUANTITY*PRICE)

FROM AGENT LEFT JOIN OPERATION USING(ID_AG)

GROUP BY NAME_AG;

11. Для каждого склада определить суммарное количество хранящихся на нем товаров.

SELECT NAME, SUM(QUANTITY)

FROM GOODS_WH JOIN WAREHOUSE USING(ID_WH)

GROUP BY NAME;


написать администратору сайта