Страница 1 из 1
Запросы с агрегатными функциями
Добавлено: 30 ноя 2009, 19:10
ya_novichok
Привет всем!
У меня есть таблицы:
МодельУстройства(id_модели, наименование, фирма)
Устройства(СерийныйНомер,id_модели,...)
РемонтУстройств(id_ремонта,id_причины,СерийныйНомер,...)
ПричиныРемонта(id_причины,наименование)
нужно написать запрос, который возвращает фирму, устройства которой чаще попадают в ремонт.
и запрос, возвращающий причину, по которой чаще всего устройства попадают в ремонт.
как это осуществить? совсем запуталась.помогите,пожалуйста.
заранее спасибо.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
вот до чего дошла сама, а что дальше?
Re: Запросы с агрегированными функциями
Добавлено: 30 ноя 2009, 23:24
mc-black
возвращает фирму, устройства которой чаще попадают в ремонт
Код: Выделить всё
SELECT TOP 1 ЧислоРемонтов.фирма
FROM [SELECT COUNT(*) As число, Фирмы.фирма
FROM РемонтУстройств, [SELECT Устройства.СерийныйНомер, МодельУстройства.фирма
FROM МодельУстройства, Устройства
WHERE МодельУстройства.id_модели=Устройства.id_модели]. AS Фирмы
WHERE РемонтУстройств.СерийныйНомер=Фирмы.СерийныйНомер
GROUP BY Фирмы.фирма]. AS ЧислоРемонтов
ORDER BY ЧислоРемонтов.число DESC;
Re: Запросы с агрегированными функциями
Добавлено: 30 ноя 2009, 23:26
Yurich
ya_novichok писал(а):Привет всем!
У меня есть таблицы:
МодельУстройства(id_модели, наименование, фирма)
Устройства(СерийныйНомер,id_модели,...)
РемонтУстройств(id_ремонта,id_причины,СерийныйНомер,...)
ПричиныРемонта(id_причины,наименование)
нужно написать запрос, который возвращает фирму, устройства которой чаще попадают в ремонт.
и запрос, возвращающий причину, по которой чаще всего устройства попадают в ремонт.
как это осуществить? совсем запуталась.помогите,пожалуйста.
заранее спасибо.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
вот до чего дошла сама, а что дальше?
Ты практически все сама сделала. Осталось только добавить "order by КолРемонтов desc limit 1"
Re: Запросы с агрегированными функциями
Добавлено: 30 ноя 2009, 23:35
mc-black
запрос, возвращающий причину, по которой чаще всего устройства попадают в ремонт
Код: Выделить всё
SELECT TOP 1 ПричиныРемонта.наименование
FROM ПричиныРемонта, РемонтУстройств
WHERE ПричиныРемонта.id_причины=РемонтУстройств.id_причины
GROUP BY ПричиныРемонта.наименование
ORDER BY COUNT(*) DESC;
Re: Запросы с агрегированными функциями
Добавлено: 01 дек 2009, 11:22
Игорь Акопян
только по структуре напрашивается не
Устройства(СерийныйНомер,id_модели,...) и
РемонтУстройств(id_ремонта,id_причины,СерийныйНомер,...)
а
Устройства(id_Устройства, СерийныйНомер,id_модели,...) и
РемонтУстройств(id_ремонта,id_причины,id_Устройства,...)
ибо серийник строка скорее всего, а ключи по строкам - не айс
Re: Запросы с агрегированными функциями
Добавлено: 01 дек 2009, 17:00
ya_novichok
Игорь Акопян писал(а):только по структуре напрашивается не
Устройства(СерийныйНомер,id_модели,...) и
РемонтУстройств(id_ремонта,id_причины,СерийныйНомер,...)
а
Устройства(id_Устройства, СерийныйНомер,id_модели,...) и
РемонтУстройств(id_ремонта,id_причины,id_Устройства,...)
ибо серийник строка скорее всего, а ключи по строкам - не айс
серийник тоже число. первоначально был id_устройства, но преподу показалось, что идентифицируищих полей хватает и без id... приходиться подчиняться ибо это курсач)
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Спасибо всем, что откликнулись)
я вчера сама довела эти запросы до ума, но наверно не рационально: я создала представление, и уже из этой виртуальной таблицы выбирала максимум.
как на Ваш взгляд такой ход?
Re: Запросы с агрегированными функциями
Добавлено: 02 дек 2009, 13:52
Игорь Акопян
вполне нормальный. Скорость устраивает? Функцию на него возложенную выполняет? Ну и славно.
ЗЫ. Серийник - число? Оригинально... У меня вот вокруг ни один прибор к вам не внести будет... Ну да дело хозяйское

Re: Запросы с агрегированными функциями
Добавлено: 02 дек 2009, 15:35
chur
ЗЫ. Хотелось бы, чтоб модератор поправил название топика
Запросы с агрегатными функциями (а не агрегированными)