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. Лекции по дисциплине «Базы данных».
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.