Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток, никак не могу решить задачу к экзамену:
25. Создать, с помощью mysql, информационную систему, описывающую результаты сессии. Информация должна содержать номер семестра, сведения о студенте (ФИО, группа), сведения о группах (название или номер группы, специальность) и результаты сдачи сессии (не сдал, сдал на 3, сдал на 4-5, сдал на 5). Вывести всех студентов, сдавших сессию только на 5. Рассчитать сумму стипендии студентам, которые сдали сессию на 5, по следующему правилу базовая часть стипендии 800 плюс 30% от базовой части. Сформировать список из трех групп, у которых сумма общей стипендии максимальна.
Интересует только второй вопрос.
Подскажите как сформировать запрос.
Неактивен
Приведите структуру таблиц (show create table ...), тестовые данные (insert into ...) и ожидаемый результат.
Неактивен
create database ses;
use ses;
create table stud(
id_st int auto_increment primary key,
fio_st varchar(30),
grup varchar(30));
create table grup(
id_gr int auto_increment primary key,
nazv_gr varchar(30),
spec varchar(30));
create table sdacha(
id_sd int auto_increment primary key,
st_id int,
gr_id int,
num_sem int,
nesdal varchar(10),
na_3 varchar(10),
na_4 varchar(10),
na_5 varchar(10),
constraint id_st_fk foreign key(st_id) references stud(id_st),
constraint id_gr_fk foreign key(gr_id) references grup(id_gr));
insert into stud values
(1,'fio_st1','gr1'),
(2,'fio_st2','gr2'),
(3,'fio_st3','gr3'),
(4,'fio_st4','gr4'),
(5,'fio_st5','gr5'),
(6,'fio_st6','gr6');
insert into grup values
(1,'gr1','spec1'),
(2,'gr2','spec2'),
(3,'gr3','spec3'),
(4,'gr4','spec4'),
(5,'gr5','spec5'),
(6,'gr6','spec6');
drop table sdacha;
insert into sdacha values
(1,1,1,'1','fio_st1',null,null,null),
(2,1,1,'2',null,null,null,'fio_st2'),
(3,2,1,'4',null,null,null,'fio_st5'),
(4,4,2,'2',null,null,'fio_st6',null),
(5,4,3,'3',null,null,null,'fio_st4'),
(6,1,4,'1',null,null,'fio_st3',null);
Неактивен
Рассчитать сумму стипендии студентам, которые сдали сессию на 5, по следующему правилу базовая часть стипендии 800 плюс 30% от базовой части.
Если общая сумма, то
SELECT count(*) * ( 800 + (800*0.3) ) FROM `sdacha` WHERE `na_5` IS NOT NULL;
Если с разбивкой по студентам, то
SELECT `st_id` AS student_id, ( 800 + (800*0.3) ) as summa FROM `sdacha` WHERE `na_5` IS NOT NULL;[/syntax]
Неактивен
Спасибо за помощь
Неактивен