Даны таблицы
CREATE TABLE Город( Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY,Регион VARCHAR(20)) | CREATE TABLE Разговор(Код_Разговора INT ,Код_Города INT NOT NULL,Фамилия IVARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL) |
Определить тех абонентов, которые заплатили за телефонные разговоры больше, чем другие.
SELECT Разговор.Фамилия, Sum(Город.Тариф*Разговор.Продолжительность) AS СтоимостьFROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_ГородаGROUP BY Разговор.ФамилияHAVING Sum(Город.Тариф*Разговор.Продолжительность)>=ALL(SELECTSum(Город.Тариф*Разговор.Продолжительность) FROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_ГородаGROUP BY Разговор.Фамилия)(Верный ответ)
SELECT Разговор.Фамилия, Sum(Город.Тариф*Разговор.Продолжительность) AS СтоимостьFROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_ГородаGROUP BY Разговор.ФамилияHAVING Sum(Город.Тариф*Разговор.Продолжительность)=MAX(SELECTSum(Город.Тариф*Разговор.Продолжительность) FROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_ГородаGROUP BY Разговор.Фамилия)
SELECT Разговор.Фамилия, Sum(Город.Тариф*Разговор.Продолжительность) AS СтоимостьFROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_ГородаGROUP BY Разговор.ФамилияHAVING Sum(Город.Тариф*Разговор.Продолжительность)<=ALL(SELECTSum(Город.Тариф*Разговор.Продолжительность) FROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_Города)
SELECT Разговор.Фамилия, Sum(Город.Тариф*Разговор.Продолжительность) AS СтоимостьFROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_ГородаWHERE Sum(Город.Тариф*Разговор.Продолжительность)>=ALL(SELECTSum(Город.Тариф*Разговор.Продолжительность) FROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_Города)