Читайте также:
|
|
Необходимо создать следующие запросы:
Рассмотрим создание каждого из запросов:
1. Какие поставки получаем в феврале текущего года?
Введем:
select t_name,data_post,cena_post,kol_post into zapros_1 from postavka join tovar on (postavka.tovar_id=tovar.id_tovar)
where (data_post>'01.31.2008') and (data_post<'03.01.2008')
select * from zapros_1
Нажимаем «Выполнить» и получаем:
2. Кто поставлял товар в феврале?
Введем:
select distinct p_name into zapros_2 from postavka join postavschic on (postavka.post_id=postavschic.id_post)
where data_post>'01.31.2008' and data_post>'03.01.2008'
select * from zapros_2
Нажимаем «Выполнить» и получаем:
3. Какие товары поставлялись в феврале, с указанием, сколько было поставок и какое суммарное количество товара было поставлено.
Введем:
select t_name, count(id_part) as kol_post,sum(kol_post) as vsego into zapros_3 from postavka join tovar on (postavka.tovar_id=tovar.id_tovar)
where data_post>'01.31.2008' and data_post>'03.01.2008'
group by t_name
select * from zapros_3
Нажимаем «Выполнить» и получаем:
4. Кому мы задолжали > 10000?
Введем:
select p_name, sum(kol_post*cena_post) as dolg into zapros_4 from postavka join postavschic on (postavka.post_id=postavschic.id_post)
where data_opl is null
group by p_name
having sum(kol_post*cena_post)>10000
select * from zapros_4
Нажимаем «Выполнить» и получаем:
5. Сколько товаров (позиций номенклатуры) поставил каждый поставщик?
Введем:
select p_name, count(id_tovar) as razl_tov into zapros_5 from (postavka join postavschic on (postavka.post_id=postavschic.id_post)) join tovar on (tovar.id_tovar=postavka.tovar_id)
group by p_name
select * from zapros_5
Нажимаем «Выполнить» и получаем:
6. Кому из поставщиков мы задолжали больше всего?
Введем:
select p_name, sum(kol_post*cena_post) as dolg into zapros_6_1 from postavka join postavschic on (postavka.post_id=postavschic.id_post)
where data_opl is null
group by p_name
select max(dolg) as maxi into zapros_6_2 from zapros_6_1
select p_name into zapros_6 from zapros_6_1 join zapros_6_2 on (zapros_6_1.dolg=zapros_6_2.maxi)
select * from zapros_6
Нажимаем «Выполнить» и получаем:
7. По каждому товару найти клиента, который данного товара купил больше всех за февраль.
Введем:
select t_name,c_name, sum(kol_otgr) as kol into zapros_7_1 from ((otgruzka join client on (otgruzka.id_client=client.id_client)) join postavka on (postavka.id_part=otgruzka.id_part)) join tovar on (postavka.tovar_id=tovar.id_tovar)
where (data_otgr>'01.31.2008') and (data_otgr<'03.01.2008')
group by t_name,c_name
select t_name, max(kol) as maxi into zapros_7_2 from zapros_7_1
group by t_name
select zapros_7_1.t_name,c_name into zapros_7 from zapros_7_1 join zapros_7_2 on (zapros_7_1.kol=zapros_7_2.maxi and zapros_7_1.t_name=zapros_7_2.t_name) order by t_name
select * from zapros_7
Нажимаем «Выполнить» и получаем:
8. По каждому товару подсчитать количество причин, по которым он списывался в феврале.
Введем:
select distinct t_name, prich_spis into zapros_8_1 from (postavka join tovar on (postavka.tovar_id=tovar.id_tovar)) join spisanie on (postavka.id_part=spisanie.id_part)
where (data_spis>'01.31.2008') and (data_spis<'03.01.2008')
select t_name, count(prich_spis) as razl into zapros_8 from zapros_8_1
group by t_name
select * from zapros_8
Нажимаем «Выполнить» и получаем:
9. Предполагая, что поставка должна быть оплачена не позднее двух недель после получения товара, составить график предстоящих платежей.
Введем:
select p_name, (data_post+14) as data_platezha, (kol_post*cena_post) as platezh into zapros_9 from postavschic join postavka on (postavschic.id_post=postavka.post_id)
where data_opl is null
order by data_platezha
select * from zapros_9
Нажимаем «Выполнить» и получаем:
10. По какой причине фирма понесла наибольшие убытки в феврале?
Введем:
select prich_spis, sum(kol_spis*t_cena) as summa into zapros_10_1 from (spisanie join postavka on (spisanie.id_part=postavka.id_part)) join tovar on (postavka.tovar_id=tovar.id_tovar)
where (data_spis>'01.31.2008') and (data_spis<'03.01.2008')
group by prich_spis
select max(summa) as maxi into zapros_10_2 from zapros_10_1
select prich_spis, maxi into zapros_10 from zapros_10_1 join zapros_10_2 on (zapros_10_1.summa=zapros_10_2.maxi)
select * from zapros_10
Нажимаем «Выполнить» и получаем:
11. Кто из поставщиков поставляет товары партиями не менее, чем на 10000 рублей?
Введем:
select p_name, min(kol_post*cena_post) as summa into zapros_11 from postavka join postavschic on (postavka.post_id=postavschic.id_post)
group by p_name
having min(kol_post*cena_post)>=10000
select p_name from zapros_11
Нажимаем «Выполнить» и получаем:
12. Кто из клиентов закупал наиболее разнообразную номенклатуру товаров в феврале?
Введем:
select c_name, count(t_name) as kol into zapros_12_1 from ((otgruzka join client on (otgruzka.id_client=client.id_client)) join postavka on (postavka.id_part=otgruzka.id_part)) join tovar on (postavka.tovar_id=tovar.id_tovar)
where (data_otgr>'01.31.2008') and (data_otgr<'03.01.2008')
group by c_name
select * from zapros_12_1
Нажимаем «Выполнить» и получаем:
Дата добавления: 2015-07-08; просмотров: 322 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Создание и заполнение базы данных. | | | Процедуры |