Имеет база данных:
Даны таблицы
1. Абоненты (*номер телефона, ФИО, Адрес) - хранит всю информацию об абонентах телефонной сети. Поле «Номер телефона» - первичный ключ.
2. Тариф (код города, Название города, цена за минуту) – хранит информацию о тарифах, где поле «код города» - первичный ключ.
3. Разговоры(*номер разговора, номер телефона, дата, код города, время) – хранит информацию о разговорах абонентов, где поле «номер разговора» - первичный ключ, а
поле «номер телефона» - внешний ключ, который ссылается на первичный ключ таблицы «Абоненты», поле «код города» - внешний ключ, который ссылается на первичный ключ
таблицы Тариф.
Задание. Разработать процедуру или функцию, которая по каждому абоненту(номеру телефона) выдает информацию о разговорах этого абонента за период времени с даты1 по дату2, например, в следующем виде:
Код
города
Название
города
Дата Время Цена
за мин
Сумма
Создал таблицы:
create table abonenti(Phone_number int,FIO char(30),adres char(30));
create table tarif(Kod_city int,name_city char(30),price_min float);
create table razgovori(N_razgovora int,Phone_number int,data datetime,Kod_city int,time float);
Написал такую процедуру:
delimiter //
create procedure inf(IN Phone_number1 int,IN data1 datetime, IN data2 datetime)
BEGIN
SELECT tarif.Kod_city,name_city,data,time,price_min from
tarif inner join razgovori on tarif.kod_city=razgovori.kod_city where
data>=data1 and data<=data2 and Phone_number1 = Phone_number;
END;
//
Delimiter ;
Фактически пол задачи решено. Осталось самое сложное. Нужно сделать так, чтобы в конце выводимой таблицы, был столбец сумм, каждая ячейка которого вычисляется как время * стоимость минуты. Собственно вопрос в этом и заключается, как это сделать?