игра брюс 2048
Главная / Базы данных / Основы 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 "%ва" 




Главная / Базы данных / Основы SQL / Тест 6