Создание и заполнение базы данных «Бакалея», страница 4

tmp2 = "select count(*) from bakaleya inner join proizvoditeli on bakaleya.id_proizvod=proizvoditeli.id where proizvoditeli.name='"+post+"'";

tmp = String.Format("{0:0.00}", (Convert.ToDouble(tmp1) / Convert.ToDouble(tmp2)) * 100) + " %";

9. Найти все изделия, поступившие от заданного поставщика, чья стоимость больше заданной

Текстзапроса:

zapros = "SELECT bakaleya.id, tovary.name as tovar, proizvoditeli.name as firma, bakaleya.release_date as data, bakaleya.price, bakaleya.weight_volume as volume, bakaleya.count FROM bakaleya inner join tovary on tovary.id=bakaleya.id_tovar and bakaleya.price>" + price.Replace(',', '.') + " inner join proizvoditeli on proizvoditeli.id = bakaleya.id_proizvod and proizvoditeli.name='"+post+"';";

10. Найти все изделия заданного производителя.

Текстзапроса:

zapros = "SELECT bakaleya.id, tovary.name as tovar, proizvoditeli.name as firma, bakaleya.release_date as data, bakaleya.price, bakaleya.weight_volume as volume, bakaleya.count FROM bakaleya inner join tovary on tovary.id=bakaleya.id_tovar inner join proizvoditeli on proizvoditeli.id = bakaleya.id_proizvod and proizvoditeli.name='" + post + "';";

11. Найти долю изделий, выпущенных за определенный период от общего времени выпуска

Текстзапроса:

tmp1  = "select sum(count) from bakaleya";

tmp2  = "select sum(count) from bakaleya where (release_date>='"+min.Date+"' and release_date<='"+max.Date+"')";

tmp = String.Format("{0:0.00}", (Convert.ToDouble(tmp1) / Convert.ToDouble(tmp2)) * 100) + " %";

12. Найти долю дешевых изделий (чья стоимость меньше заданной) поступивших от заданного поставщика и в целом.

Текстзапроса:

if (pos == "")

                    tmp1 = "select sum(count) from bakaleya ";

                else tmp1 = "select sum(count) from bakaleya inner join proizvoditeli on bakaleya.id_proizvod=proizvoditeli.id and proizvoditeli.name='"+pos+"'";

if (pos == "")

                    tmp2 = "select sum(count) from bakaleya where (price<'"+price.Replace(',','.')+"')";

                else tmp2  = "select sum(count) from bakaleya inner join proizvoditeli on bakaleya.id_proizvod=proizvoditeli.id and proizvoditeli.name='" + pos + "' and bakaleya.price<'"+price.Replace(',','.')+"'";

tmp = String.Format("{0:0.00}", (Convert.ToDouble(tmp1) / Convert.ToDouble(tmp2)) * 100) + " %";

13. Найти среднюю стоимость изделий, проданных за определенный промежуток времени.

Текстзапроса:

zapros = "select avg(price) from bakaleya where release_date>='"+min.Date+"' and release_date<='"+max.Date+"'";

14. Найти все изделия, чья стоимость выше, чем средняя стоимость изделий заданного производителя.

Текстзапроса:

zapros = "select avg(price) from bakaleya inner join proizvoditeli on bakaleya.id_proizvod=proizvoditeli.id and proizvoditeli.name = '"+pos+"'";

zapros = "SELECT bakaleya.id, tovary.name as tovar, proizvoditeli.name as firma, bakaleya.release_date as data, bakaleya.price, bakaleya.weight_volume as volume, bakaleya.count FROM bakaleya inner join tovary on tovary.id=bakaleya.id_tovar and bakaleya.price>" + price.Replace(',','.') + " inner join proizvoditeli on proizvoditeli.id = bakaleya.id_proizvod;";


Анализ результатов и выводы

В процессе выполнения данной расчётно-графической работы были закреплены знания и навыки, полученные в ходе сдачи лабораторных работ, включающие в себя:

·  Создание баз данных, таблиц, записей посредством СУБД PostgreSQL.

·  Создание запросов к базе данных, включающих в себя: объединения таблиц, подзапросы, условия, группировку данных, сортировку данных.

Детально разобраны примеры запросов, условий для более точного выполнения задания. Разработан и реализован соответствующий заданию интерфейс на языке C#, а также обработчики и исключения для более комфортной работы с базой данных.


Список использованной литературы

1.  Селко Дж. Программирование на SQL для профессионалов.- М.: Лори, 2004.

2.  Язык запросов SQL. Учебный курс. – Спб.: Питер; Кев: Издательская группа BHV 2006. – 416 с.: ил.

3.  SQL: Пер. с англ. – М.: ДМК Пресс, 2003. – 456 с.:ил. (Серия «Quick Start»).

4.  Лекции по дисциплине «Базы данных».