Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/10: Рейтинг темы: голосов - 10, средняя оценка - 5.00
santehnik
0 / 0 / 0
Регистрация: 29.05.2015
#1

1. Найти максимальную сумму заказа. 2. Удалить пиццу, которую ниразу не заказывали. 3. Найти самую популярную пиццу.

05.12.2012, 13:04. Просмотров 2010. Ответов 2

Всем здравствуйте, возникла необходимость в очень срочном порядке сделать следующие задания:
Даны вот такие таблицы (это я сделал сам, пользуюсь MySQL 5.5.28 на сайте sqlfiddle.com)
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-- Create pizzas table
CREATE TABLE pizzas
(
  id_pizza INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name CHAR(20),
  price INT
);
 
INSERT INTO pizzas (name, price) 
VALUES ('Маргарита', 340), ('Пепперони', 460), ('Гавайская' , 490),
('Деревенская', 500), ('Славянская', 490);
 
-- Create order_content table
CREATE TABLE order_content
(
  id_order INT NOT NULL,
  id_pizza INT NOT NULL REFERENCES pizzas(id_pizza),
  quantity INT NOT NULL
);
 
INSERT INTO order_content (id_order, id_pizza, quantity)
VALUES (1, 1, 1), (1, 4, 2), (2, 2, 3), (3, 5, 2), (3, 4, 1), (3, 1, 1),
(4, 1, 3);
И вот такие задания, часть я сделал сам, остались вот эти, никак не могу въехать, просьба помочь:
1. Найти максимальную сумму заказа.
2. Удалить пиццу, которую ниразу не заказывали.
3. Найти самую популярную пиццу.

Просьба помочь хотя бы с частью, курил мануалы уже достаточно долго, а время поджимает, видимо соображалки не хватает что ли

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2012, 13:04
Ответы с готовыми решениями:

Показать самую популярную группу
Добрый день. Помогите написать запрос, а то я что-то совсем туплю. Есть две...

Волосатый бизнес: найти максимальную денежную сумму, которую можно заработать за N дней.
Одного неформала выгнали с работы, и теперь ему надо как-то зарабатывать себе...

На какое самое большое количество частей можно разрезать круглую пиццу
На какое самое большое количество частей можно разрезать круглую пиццу, сделав...

Найти максимальную стоимость товара Р, которую покупатель не может купить
Покупатель имеет купюры достоинством A(1), ...,A(n), а продавец - B(1), .....

Найти максимальную высоту, на которую поднимется тело после удара
В универе задали, а я в физике не силён, поэтому прошу помощи профессионалов в...

2
mifi
40 / 40 / 14
Регистрация: 29.12.2010
Сообщений: 159
06.12.2012, 19:11 #2
Попробуйте первую вот так состряпать...
T-SQL
1
2
3
4
Select MAX(SUM(p.price*o.quantity)) 
from pizzas as p inner join order_content as o 
on p.id_pizza=o.id_pizza 
group by o.id_order
сам не пробовал, потому решение вполне может быть неправильным...
0
SecretSilent
77 / 77 / 9
Регистрация: 16.02.2010
Сообщений: 634
07.12.2012, 09:06 #3
1.
mifi, нельзя использовать в одном выражении две агрегирующие функции.
SQL
1
2
3
4
5
6
7
DECLARE @t TABLE (sums INT);
INSERT INTO @t
SELECT SUM(A.quantity*B.price)
FROM order_content A
INNER JOIN pizzas B ON (A.id_pizza = B.id_pizza)
GROUP BY A.id_order;
SELECT MAX(sums) FROM @t;
2.
SQL
1
2
DELETE FROM pizzas 
WHERE id_pizza NOT IN (SELECT id_pizza FROM order_content);
Над третьим думать сейчас времени нет возможно, завтра напишу.

Добавлено через 12 часов 21 минуту
3. Если я правильно поняла, то о популярности нужно судить по тому, сколько отдельных заказов поступало на ту или иную пиццу. Тогда:
SQL
1
2
3
4
5
6
7
8
9
DECLARE @t TABLE (counts INT, id INT);
INSERT INTO @t
SELECT COUNT(id_order), id_pizza
FROM order_content
GROUP BY id_pizza;
SELECT top 1 A.name, B.counts
FROM pizzas A
INNER JOIN @t B ON (A.id_pizza = B.id)
ORDER BY B.counts DESC;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2012, 09:06

Найти максимальную степень двойки, на которую делится данное целое число
Найти максимальную степень 2, на которую делится данное целое число....

Разрезать круглую пиццу на заданное число кусков, делая заданное число прямолинейных разрезов ножом
Помогите, пожалуйста решить задачу. Дана пицца, имеющая форму круга. Её нужно...

Дан текст, в котором имеются цифры. Найти их сумму. Найти максимальную цифру
Дан текст, в котором имеются цифры. Найти их сумму. Найти максимальную цифру.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru