Главная / Базы данных /
Основы SQL / Тест 6
Основы SQL - тест 6
Упражнение 1:
Номер 1
Дана таблица
CREATE TABLE Книга
( Код_Книги INT,
Название VARCHAR(50) NOT NULL,
Цена MONEY,
Тематика VARCHAR(50) NOT NULL,
Издательство VARCHAR(50) NOT NULL,
Код_Автора INT NOT NULL,
Количество INT) |
Рассчитать общую стоимость тиража книг и 5% налог с продаж.
Ответ:
 (1)
SELECT Название, Цена*Количество AS Стоимость,
Цена*Количество*0.05 AS Налог
FROM Книга 
 (2)
SELECT Название, Цена*Количество,
@Цена*@Количество*0.05
FROM Книга 
 (3)
SELECT Название, Стоимость=Цена*Количество,
Налог=@Цена*@Количество*0.05
FROM Книга 
 (4)
SELECT Название, @s=Цена*Количество,
@p=Цена*Количество*0.05
FROM Книга 
Номер 2
Даны таблицы
CREATE TABLE Рейс
(Номер_рейса INT,
Конечный_пункт VARCHAR(30),
Дата_вылета DATETIME,
Продолжительность_маршрута INT,
Число_билетов INT,
Стоимость MONEY) |
CREATE TABLE БИЛЕТ
(Номер_места CHAR(3),
Номер_рейса CHAR(6),
Дата_продажи DATETIME,
Стоимость MONEY,
Фамилия_пассажира VARCHAR(20)) |
Рассчитать общую стоимость билетов для рейса, 5% налог с продаж и общий доход рейса.
Ответ:
 (1)
SELECT Номер_рейса,
Стоимость*Число_билетов AS Общ_стоимость,
Стоимость*Число_билетов*0.05 AS Налог,
Стоимость*Число_билетов*0.95 AS Доход
FROM Рейс  
 (2)
SELECT Номер_рейса,
Стоимость*Число_билетов AS Общ_стоимость,
Общ_стоимость*0.05 AS Налог,
Общ_стоимость*0.95 AS Доход
FROM Рейс  
 (3)
SELECT Номер_рейса,
Общ_стоимость =Стоимость*Число_билетов,
Налог =Общ_стоимость*0.05,
Доход =Общ_стоимость*0.95
FROM Рейс  
 (4)
SELECT Номер_рейса,
@s=Стоимость*Число_билетов,
@n=Стоимость*Число_билетов*0.05,
@d=Стоимость*Число_билетов*0.95
FROM Рейс  
Номер 3
Даны таблицы
CREATE TABLE Блюдо
(Название_блюда VARCHAR(20) NOT NULL,
Время_приготовления INT NOT NULL,
Общая_калорийность INT NOT NULL,
Номер_рецепта INT,
Повар VARCHAR(20),
Стоимость MONEY ) |
CREATE TABLE Компонент
(Название_компонента VARCHAR(20),
Калорийность INT NOT NULL,
Вес FLOAT,
Белки INT,
Блюдо VARCHAR(20),
Углеводы INT,
Стоимость MONEY NOT NULL) |
Рассчитать общую стоимость и калорийность компонентов блюда.
Ответ:
 (1)
SELECT Название_компонента,
Стоимость*Вес AS Общ_Стоимость,
Калорийность*Вес AS Общ_калорийность
FROM Компонент 
 (2)
SELECT Название_компонента,
Общ_Стоимость =Стоимость*Вес,
Общ_калорийность =Калорийность*Вес
FROM Компонент 
 (3)
SELECT Название_компонента,
@s=Стоимость*Вес, @k=Калорийность*Вес
FROM Компонент 
Номер 4
Даны таблицы
CREATE TABLE Город
(Код_Города INT ,
Название VARCHAR(20) NOT NULL,
Тариф MONEY,
Регион VARCHAR(20)) |
CREATE TABLE Разговор
(Код_Разговора INT,
Код_Города INT NOT NULL,
Фамилия VARCHAR(20),
Дата DATETIME NOT NULL,
Продолжительность INT NOT NULL) |
Рассчитать стоимость каждого разговора.
Ответ:
 (1)
SELECT Разговор.Фамилия, Город.Название,
Город.Тариф*Разговор.Продолжительность
AS Стоимость
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города  
 (2)
SELECT Разговор.Фамилия, Город.Название,
Город.Тариф*Разговор.Продолжительность
FROM Город INNER JOIN Разговор ON
Код_Города = Разговор.Код_Города  
 (3)
SELECT Разговор.Фамилия, Город.Название,
Стоимость=Город.Тариф*Разговор.Продолжительность
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города  
 (4)
SELECT Разговор.Фамилия, Город.Название,
@s=Город.Тариф*Разговор.Продолжительность
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города  
Упражнение 2:
Номер 1
Даны таблицы
CREATE TABLE Автор
(Код_Автора INT ,
Фамилия VARCHAR(50) NULL,
Имя VARCHAR(50) NULL,
Отчество VARCHAR(50) NULL,
Пол VARCHAR(50) NOT NULL ,
Дата_рождения DATETIME ,
Телефон CHAR(9)) |
CREATE TABLE Книга
(Код_Книги INT,
Название VARCHAR(50) NOT NULL,
Цена MONEY,
Тематика VARCHAR(50) NOT NULL,
Издательство VARCHAR(50) NOT NULL,
Код_Автора INT NOT NULL,
Количество INT) |
На какую сумму были проданы книги каждого автора?
Ответ:
 (1)
SELECT Автор.Фамилия,
Sum(Книга.Цена*Книга.Количество) AS Стоимость
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
GROUP BY Автор.Фамилия  
 (2)
SELECT Автор.Фамилия,
Стоимость =Sum(Книга.Цена*Книга.Количество) AS Стоимость
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
GROUP BY Автор.Фамилия  
 (3)
SELECT Автор.Фамилия,
Sum(Книга.Цена*Книга.Количество) AS Стоимость
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора  
Номер 2
Даны таблицы
CREATE TABLE Рейс
(Номер_рейса INT,
Конечный_пункт VARCHAR(30),
Дата_вылета DATETIME,
Продолжительность_маршрута INT,
Число_билетов INT,
Стоимость MONEY) |
CREATE TABLE БИЛЕТ
(Номер_места CHAR(3),
Номер_рейса CHAR(6),
Дата_продажи DATETIME,
Стоимость MONEY,
Фамилия_пассажира VARCHAR(20)) |
Определить количество проданных на каждый рейс билетов.
Ответ:
 (1)
SELECT Рейс.Номер_рейса,
Count(Билет.Фамилия_пассажира) AS Кол_пассажиров
FROM Рейс INNER JOIN Билет ON
Рейс.Номер_рейса = Билет.Номер_рейса
GROUP BY Рейс.Номер_рейса 
 (2)
SELECT Рейс.Номер_рейса,
Кол_пассажиров= Count(Билет.Фамилия_пассажира)
FROM Рейс INNER JOIN Билет ON
Рейс.Номер_рейса = Билет.Номер_рейса
GROUP BY Рейс.Номер_рейса 
 (3)
SELECT Рейс.Номер_рейса,
Count(Билет.Фамилия_пассажира) AS Кол_пассажиров
FROM Рейс INNER JOIN Билет ON
Рейс.Номер_рейса = Билет.Номер_рейса 
 (4)
SELECT Номер_рейса,
Count(Фамилия_пассажира) AS Кол_пассажиров
FROM Рейс INNER JOIN Билет ON
Рейс.Номер_рейса = Билет.Номер_рейса
GROUP BY Номер_рейса 
Номер 3
Даны таблицы
CREATE TABLE Блюдо
(Название_блюда VARCHAR(20) NOT NULL,
Время_приготовления INT NOT NULL,
Общая_калорийность INT NOT NULL,
Номер_рецепта INT,
Повар VARCHAR(20),
Стоимость MONEY ) |
CREATE TABLE Компонент
(Название_компонента VARCHAR(20),
Калорийность INT NOT NULL,
Вес FLOAT,
Белки INT,
Блюдо VARCHAR(20),
Углеводы INT,
Стоимость MONEY NOT NULL) |
Для каждого повара определить количество используемых компонентов и их общую стоимость
Ответ:
 (1)
SELECT Блюдо.Повар,
Sum(Компонент.Вес*Компонент.Стоимость)
AS Общ_Стоимость,
Count(Компонент.Название_компонента)
AS Кол_компонент
FROM Блюдо INNER JOIN Компонент ON
Блюдо.Название_блюда = Компонент.Блюдо
GROUP BY Блюдо.Повар 
 (2)
SELECT Блюдо.Повар,
Sum(Компонент.Вес*Компонент.Стоимость)
AS Общ_Стоимость,
Count(Компонент.Название_компонента)
AS Кол_компонент
FROM Блюдо INNER JOIN Компонент ON
Блюдо.Название_блюда = Компонент.Блюдо 
 (3)
SELECT Sum(Вес* Стоимость) AS Общ_Стоимость,
Count(Название_компонента) AS Кол_компонент
FROM Блюдо INNER JOIN Компонент ON
Блюдо.Название_блюда = Компонент.Блюдо
GROUP BY Повар 
Номер 4
Даны таблицы
CREATE TABLE Город
(Код_Города INT ,
Название VARCHAR(20) NOT NULL,
Тариф MONEY,
Регион VARCHAR(20)) |
CREATE TABLE Разговор
(Код_Разговора INT,
Код_Города INT NOT NULL,
Фамилия VARCHAR(20),
Дата DATETIME NOT NULL,
Продолжительность INT NOT NULL) |
Определить среднюю стоимость разговоров в каждом регионе.
Ответ:
 (1)
SELECT Город.Регион,
Avg(Город.Тариф*Разговор.Продолжительность)
AS Ср_Стоимость
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
GROUP BY Город.Регион  
 (2)
SELECT Тариф* Продолжительность
AS Avg(Ср_Стоимость)
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
GROUP BY Город.Регион  
 (3)
SELECT Регион.Город, Ср_Стоимость=
Avg(Город.Тариф*Разговор.Продолжительность)
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
GROUP BY Город.Регион  
Упражнение 3:
Номер 4
Даны таблицы
CREATE TABLE Город
(Код_Города INT ,
Название VARCHAR(20) NOT NULL,
Тариф MONEY,
Регион VARCHAR(20)) |
CREATE TABLE Разговор
(Код_Разговора INT,
Код_Города INT NOT NULL,
Фамилия VARCHAR(20),
Дата DATETIME NOT NULL,
Продолжительность INT NOT NULL) |
Определить количество и общую продолжительность разговоров для каждого региона, с жителями городов которого вели телефонные переговоры абоненты, чьи фамилии начинаются на И.
Ответ:
 (1)
SELECT Город.Регион,
Count(Разговор.Код_Разговора) AS Кол_разговоров,
Sum(Разговор.Продолжительность) AS
Общ_Продолжительность
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
WHERE Разговор.Фамилия LIKE "И%"
GROUP BY Город.Регион  
 (2)
SELECT Город.Регион,
Count(Разговор.Код_Разговора) AS Кол_разговоров,
Sum(Разговор.Продолжительность) AS
Общ_Продолжительность
FROM Город INNER JOIN Разговор
ON Город.Код_Города = Разговор.Код_Города
WHERE HAVING Разговор.Фамилия LIKE "И%"  
 (3)
SELECT Город.Регион,
Count(Разговор.Код_Разговора) AS Кол_разговоров,
Sum(Разговор.Продолжительность) AS
Общ_Продолжительность
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
GROUP BY Город.Регион
HAVING Разговор.Фамилия LIKE "И%"  
Упражнение 4:
Номер 1
Даны таблицы
CREATE TABLE Автор
(Код_Автора INT ,
Фамилия VARCHAR(50) NULL,
Имя VARCHAR(50) NULL,
Отчество VARCHAR(50) NULL,
Пол VARCHAR(50) NOT NULL ,
Дата_рождения DATETIME ,
Телефон CHAR(9)) |
CREATE TABLE Книга
( Код_Книги INT,
Название VARCHAR(50) NOT NULL,
Цена MONEY,
Тематика VARCHAR(50) NOT NULL,
Издательство VARCHAR(50) NOT NULL,
Код_Автора INT NOT NULL,
Количество INT) |
Определить авторов, у каждого из которых было продано более 1000 экземпляров книг.
Ответ:
 (1)
SELECT Автор.Фамилия,
Sum(Книга.Количество) AS Общ_Количество
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
GROUP BY Автор.Фамилия
HAVING Sum(Книга.Количество)>1000  
 (2)
SELECT Автор.Фамилия,
Sum(Книга.Количество) AS Общ_Количество
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
GROUP BY Автор.Фамилия
WHERE Sum(Книга.Количество)>1000  
 (3)
SELECT Sum(Книга.Количество) AS
Общ_Количество
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
GROUP BY Автор.Фамилия
HAVING Общ_Количество>1000  
 (4)
SELECT Автор.Фамилия,
Sum(Книга.Количество) AS Общ_Количество
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
HAVING Sum(Книга.Количество)>1000  
Номер 2
Даны таблицы
CREATE TABLE Рейс
(Номер_рейса INT,
Конечный_пункт VARCHAR(30),
Дата_вылета DATETIME,
Продолжительность_маршрута INT,
Число_билетов INT,
Стоимость MONEY) |
CREATE TABLE БИЛЕТ
(Номер_места CHAR(3),
Номер_рейса INT,
Дата_продажи DATETIME,
Стоимость MONEY,
Фамилия_пассажира VARCHAR(20)) |
Вывести список городов, куда было продано не менее 200 билетов на сумму, превышающую 10000 руб.
Ответ:
 (1)
SELECT Рейс.Конечный_пункт,
Count(Билет.Фамилия_пассажира) AS
Кол_пассажиров, Sum(Рейс.Стоимость) AS
Общ_Стоимость
FROM Билет INNER JOIN Рейс ON
Билет.Номер_рейса = Рейс.Номер_рейса
GROUP BY Рейс.Конечный_пункт
HAVING Count(Билет.Фамилия_пассажира)>=200 AND
Sum(Рейс.Стоимость)>10000 
 (2)
SELECT Рейс.Конечный_пункт,
Count(Билет.Фамилия_пассажира) AS
Кол_пассажиров, Sum(Рейс.Стоимость) AS
Общ_Стоимость
FROM Билет INNER JOIN Рейс ON
Билет.Номер_рейса = Рейс.Номер_рейса
GROUP BY Рейс.Конечный_пункт
HAVING Кол_пассажиров>=200 AND
Общ_Стоимость>10000 
 (3)
SELECT Рейс.Конечный_пункт,
Count(Билет.Фамилия_пассажира) AS Кол_пассажиров,
Sum(Рейс.Стоимость) AS Общ_Стоимость
FROM Билет INNER JOIN Рейс ON
Билет.Номер_рейса = Рейс.Номер_рейса
HAVING Count(Билет.Фамилия_пассажира)>=200 AND
Sum(Рейс.Стоимость)>10000 
Номер 3
Даны таблицы
CREATE TABLE Блюдо
(Название_блюда VARCHAR(20) NOT NULL,
Время_приготовления INT NOT NULL,
Общая_калорийность INT NOT NULL,
Номер_рецепта INT,
Повар VARCHAR(20),
Стоимость MONEY ) |
CREATE TABLE Компонент
(Название_компонента VARCHAR(20),
Калорийность INT NOT NULL,
Вес FLOAT,
Белки INT,
Блюдо VARCHAR(20),
Углеводы INT,
Стоимость MONEY NOT NULL) |
Определить поваров, которые на приготовление каждого из своих блюд тратят в среднем менее 10 мин, а общий вес блюд превосходит 500 г.
Ответ:
 (1)
SELECT Блюдо.Повар,
Avg(Блюдо.Время_приготовления) AS Ср_время,
Sum(Компонент.Вес) AS Общ_вес
FROM Блюдо INNER JOIN Компонент ON
Блюдо.Название_блюда = Компонент.Блюдо
GROUP BY Блюдо.Повар
HAVING Avg(Блюдо.Время_приготовления)<10 AND
Sum(Компонент.Вес)>500
 
 (2)
SELECT Блюдо.Повар,
Avg(Блюдо.Время_приготовления) AS Ср_время,
Sum(Компонент.Вес) AS Общ_вес
FROM Блюдо INNER JOIN Компонент ON
Блюдо.Название_блюда = Компонент.Блюдо
GROUP BY Блюдо.Повар
HAVING Ср_время <10 AND Общ_вес >500
 
 (3)
SELECT Блюдо.Повар,
Avg(Блюдо.Время_приготовления) AS
Ср_время, Sum(Компонент.Вес) AS Общ_вес
FROM Блюдо INNER JOIN Компонент ON
Блюдо.Название_блюда = Компонент.Блюдо
GROUP BY Блюдо.Повар
WHERE Avg(Блюдо.Время_приготовления<10) AND
Sum(Компонент.Вес>500)
 
 (4)
SELECT Блюдо.Повар,
Avg(Блюдо.Время_приготовления) AS Ср_время,
Sum(Компонент.Вес) AS Общ_вес
FROM Блюдо INNER JOIN Компонент ON
Блюдо.Название_блюда = Компонент.Блюдо
WHERE Avg(Блюдо.Время_приготовления<10 AND
Sum(Компонент.Вес>500)
 
Номер 4
Даны таблицы
CREATE TABLE Город
( Код_Города INT ,
Название VARCHAR(20) NOT NULL,
Тариф MONEY,
Регион VARCHAR(20)) |
CREATE TABLE Разговор
(Код_Разговора INT,
Код_Города INT NOT NULL,
Фамилия VARCHAR(20),
Дата DATETIME NOT NULL,
Продолжительность INT NOT NULL) |
Определить фамилии абонентов, общее время разговоров которых менее 10 мин, а общая стоимость оказалась больше 100 руб.
Ответ:
 (1)
SELECT Разговор.Фамилия,
Sum(Разговор.Продолжительность) AS
Общ_Продолжительность,
Sum(Город.Тариф*Разговор.Продолжительность) AS
Стоимость
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
GROUP BY Разговор.Фамилия
HAVING Sum(Разговор.Продолжительность) <10 AND
Sum(Город.Тариф*Разговор.Продолжительность) >100  
 (2)
SELECT Разговор.Фамилия,
Sum(Разговор.Продолжительность) AS
Общ_Продолжительность,
Sum(Город.Тариф*Разговор.Продолжительность) AS
Стоимость
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
GROUP BY Разговор.Фамилия
HAVING Общ_Продолжительность<10 AND
Стоимость>100  
 (3)
SELECT Разговор.Фамилия,
Sum(Разговор.Продолжительность) AS
Общ_Продолжительность,
Sum(Город.Тариф*Разговор.Продолжительность) AS
Стоимость
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
WHERE Sum(Разговор.Продолжительность<10) AND
Sum(Город.Тариф*Разговор.Продолжительность)>100  
 (4)
SELECT Разговор.Фамилия,
Sum(Разговор.Продолжительность) AS
Общ_Продолжительность,
Sum(Город.Тариф*Разговор.Продолжительность) AS
Стоимость
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
GROUP BY Разговор.Фамилия
WHERE Sum(Разговор.Продолжительность<10) AND
Sum(Город.Тариф*Разговор.Продолжительность)>100  
Упражнение 5:
Номер 1
Даны таблицы Автор
и Книга
.
CREATE TABLE Автор
( Код_Автора INT ,
Фамилия VARCHAR(50) NULL)
|
CREATE TABLE Книга
( Код_Книги INT,
Название VARCHAR(50) NOT NULL,
Цена MONEY,
Издательство VARCHAR(50) NOT NULL,
Код_Автора INT NOT NULL,
Количество INT)
|
Книги каких авторов были проданы на сумму, превышающую 10000 руб.?
Ответ:
 (1)
SELECT Автор.Фамилия,
Sum(Книга.Цена*Книга.Количество) AS Стоимость
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
GROUP BY Автор.Фамилия
HAVING Sum(Книга.Цена*Книга.Количество)>10000 
 (2)
SELECT Автор.Фамилия,
Стоимость =Sum(Книга.Цена*Книга.Количество)
FROM Книга
INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
GROUP BY Автор.Фамилия
WHERE Sum(Книга.Цена*Книга.Количество)>10000 
 (3)
SELECT Автор.Фамилия,
Sum(Книга.Цена*Книга.Количество) AS Стоимость
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
HAVING Sum(Книга.Цена*Книга.Количество)>10000 
Номер 2
Даны таблицы
CREATE TABLE Рейс
(Номер_рейса INT,
Конечный_пункт VARCHAR(30),
Дата_вылета DATETIME,
Число_билетов INT,
Стоимость MONEY)
|
CREATE TABLE БИЛЕТ
(Номер_места CHAR(3),
Номер_рейса CHAR(6),
Дата_продажи DATETIME,
Стоимость MONEY)
|
Рассчитать общую стоимость билетов для каждого рейса, 5% налог с продаж и доход от рейсов до Москвы.
Ответ:
 (1)
SELECT Номер_рейса,
Стоимость*Число_билетов AS Общ_стоимость,
Стоимость*Число_билетов*0.05 AS Налог,
Стоимость*Число_билетов*0.95 AS Доход
FROM Рейс
WHERE Конечный_пункт='Москва' 
 (2)
SELECT Номер_рейса,
Стоимость*Число_билетов AS Общ_стоимость,
Общ_стоимость* 0.05 AS Налог,
Общ_стоимость *0.95 AS Доход
FROM Рейс
HAVING Конечный_пункт='Москва' 
 (3)
SELECT Номер_рейса,
Общ_стоимость =Стоимость*Число_билетов,
Налог =Общ_стоимость* 0.05,
Доход =Общ_стоимость *0.95
FROM Рейс
WHERE Конечный_пункт='Москва' 
 (4)
SELECT Номер_рейса,
@s=Стоимость*Число_билетов,
@n=Стоимость*Число_билетов* 0.05,
@d=Стоимость*Число_билетов* 0.95
FROM Рейс
HAVING Конечный_пункт='Москва' 
Номер 3
Даны таблицы Город
и Разговор
.
CREATE TABLE Город
( Код_Города INT ,
Название VARCHAR(20) NOT NULL,
Тариф MONEY,
Регион VARCHAR(20))
|
CREATE TABLE Разговор
(Код_Разговора INT ,
Код_Города INT NOT NULL,
Фамилия VARCHAR(20),
Дата DATETIME NOT NULL,
Продолжительность INT NOT NULL)
|
Рассчитать стоимость каждого телефонного разговора с Москвой.
Ответ:
 (1)
SELECT Разговор.Фамилия, Город.Название,
Город.Тариф*Разговор.Продолжительность AS
Стоимость
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
WHERE Город.Название='Москва' 
 (2)
SELECT Разговор.Фамилия, Город.Название,
Город.Тариф*Разговор.Продолжительность
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
WHERE Город.Название='Москва' 
 (3)
SELECT Разговор.Фамилия, Город.Название,
Стоимость=Город.Тариф*Разговор.Продолжительность
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
ON Город.Название='Москва' 
 (4)
SELECT Разговор.Фамилия, Город.Название,
@s=Город.Тариф*Разговор.Продолжительность
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
WHERE Город.Название='Москва' 
Упражнение 6:
Номер 1
В каком количестве и на какую сумму издавал свои книги автор Борисов в каждом издательстве?
Ответ:
 (1)
SELECT Sum(Книга.Количество) AS Общее_Количество,
Sum(Книга.Цена*Книга.Количество) AS Общ_Стоимость,
Книга.Издательство
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
GROUP BY Книга.Издательство, Автор.Фамилия
HAVING Автор.Фамилия='Борисов' 
 (2)
SELECT Sum(Книга.Количество) AS Общее_Количество,
Sum(Книга.Цена*Книга.Количество) AS Общ_Стоимость,
Книга.Издательство
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
GROUP BY Книга.Издательство
HAVING Автор.Фамилия='Борисов' 
 (3)
SELECT Sum(Книга.Количество) AS Общее_Количество,
Sum(Цена*Количество) AS Общ_Стоимость,
Книга.Издательство
FROM Книга INNER JOIN Автор ON
Книга.Код_Автора = Автор.Код_Автора
GROUP BY Автор.Фамилия
HAVING Автор.Фамилия='Борисов' 
Номер 2
На какую сумму были проданы билеты на рейс до Москвы в день вылета?
Ответ:
 (1)
SELECT Sum(Билет.Стоимость) AS Общ_Стоимость,
Билет.Дата_продажи
FROM Рейс INNER JOIN Билет ON
Рейс.Номер_рейса = Билет.Номер_рейса
WHERE Билет.Дата_продажи=Рейс.Дата_вылета AND
Рейс.Конечный_пункт='Москва'
GROUP BY Билет.Дата_продажи 
 (2)
SELECT Sum(Билет.Стоимость) AS Общ_Стоимость,
Билет.Дата_продажи
FROM Рейс INNER JOIN Билет ON
Рейс.Номер_рейса = Билет.Номер_рейса
GROUP BY Билет.Дата_продажи
HAVING Билет.Дата_продажи=Рейс.Дата_вылета AND
Рейс.Конечный_пункт='Москва' 
 (3)
SELECT Sum(Билет.Стоимость) AS Общ_Стоимость
FROM Рейс INNER JOIN Билет ON
Рейс.Номер_рейса = Билет.Номер_рейса
WHERE Билет.Дата_продажи=Рейс.Дата_вылета AND
Рейс.Конечный_пункт='Москва'
GROUP BY Билет.Дата_продажи 
 (4)
SELECT Билет.Дата_продажи,
Общ_Стоимость =Sum(Билет.Стоимость)
FROM Рейс INNER JOIN Билет ON
Рейс.Номер_рейса = Билет.Номер_рейса
WHERE Билет.Дата_продажи=Рейс.Дата_вылета AND
Рейс.Конечный_пункт='Москва'
GROUP BY Билет.Дата_продажи 
Номер 3
Определить количество и общую продолжительность разговоров для каждого региона, с городами которого осуществляли телефонную связь абоненты, чьи фамилии содержат слог «-ва-».
Ответ:
 (1)
SELECT Город.Регион,
Count(Разговор.Код_Разговора) AS Кол_разговоров,
Sum(Разговор.Продолжительность) AS
Общ_Продолжительность
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
WHERE Разговор.Фамилия LIKE "%ва%"
GROUP BY Город.Регион 
 (2)
SELECT Город.Регион, Count(Разговор.Код_Разговора)
AS Кол_разговоров,
Sum(Разговор.Продолжительность) AS
Общ_Продолжительность
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
WHERE Разговор.Фамилия LIKE "%ва__" 
 (3)
SELECT Город.Регион,
Count(Разговор.Код_Разговора) AS Кол_разговоров,
Sum(Разговор.Продолжительность) AS
Общ_Продолжительность
FROM Город INNER JOIN Разговор ON
Город.Код_Города = Разговор.Код_Города
GROUP BY Город.Регион
HAVING Разговор.Фамилия LIKE "%ва"