Файл: Отчет по операциям в 1 квартале 2007 года (название товара, имя поставщика, название склада, тип операции, количество, цена, сумма по операции).docx
Добавлен: 20.03.2024
Просмотров: 6
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
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;