Привет всем!
У меня есть таблицы:
МодельУстройства(id_модели, наименование, фирма)
Устройства(СерийныйНомер,id_модели,...)
РемонтУстройств(id_ремонта,id_причины,СерийныйНомер,...)
ПричиныРемонта(id_причины,наименование)
нужно написать запрос, который возвращает фирму, устройства которой чаще попадают в ремонт.
и запрос, возвращающий причину, по которой чаще всего устройства попадают в ремонт.
как это осуществить? совсем запуталась.помогите,пожалуйста.
заранее спасибо.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
вот до чего дошла сама, а что дальше?
Запросы с агрегатными функциями
-
- Сообщения: 2
- Зарегистрирован: 30 ноя 2009, 18:34
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- mc-black
- Сообщения: 245
- Зарегистрирован: 08 май 2008, 16:09
- Откуда: Россия, Нижний Новгород
- Контактная информация:
возвращает фирму, устройства которой чаще попадают в ремонт
Код: Выделить всё
SELECT TOP 1 ЧислоРемонтов.фирма
FROM [SELECT COUNT(*) As число, Фирмы.фирма
FROM РемонтУстройств, [SELECT Устройства.СерийныйНомер, МодельУстройства.фирма
FROM МодельУстройства, Устройства
WHERE МодельУстройства.id_модели=Устройства.id_модели]. AS Фирмы
WHERE РемонтУстройств.СерийныйНомер=Фирмы.СерийныйНомер
GROUP BY Фирмы.фирма]. AS ЧислоРемонтов
ORDER BY ЧислоРемонтов.число DESC;
На заказ: VBA, Excel mc-black@yandex.ru
Ты практически все сама сделала. Осталось только добавить "order by КолРемонтов desc limit 1"ya_novichok писал(а):Привет всем!
У меня есть таблицы:
МодельУстройства(id_модели, наименование, фирма)
Устройства(СерийныйНомер,id_модели,...)
РемонтУстройств(id_ремонта,id_причины,СерийныйНомер,...)
ПричиныРемонта(id_причины,наименование)
нужно написать запрос, который возвращает фирму, устройства которой чаще попадают в ремонт.
и запрос, возвращающий причину, по которой чаще всего устройства попадают в ремонт.
как это осуществить? совсем запуталась.помогите,пожалуйста.
заранее спасибо.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
вот до чего дошла сама, а что дальше?
- mc-black
- Сообщения: 245
- Зарегистрирован: 08 май 2008, 16:09
- Откуда: Россия, Нижний Новгород
- Контактная информация:
запрос, возвращающий причину, по которой чаще всего устройства попадают в ремонт
Код: Выделить всё
SELECT TOP 1 ПричиныРемонта.наименование
FROM ПричиныРемонта, РемонтУстройств
WHERE ПричиныРемонта.id_причины=РемонтУстройств.id_причины
GROUP BY ПричиныРемонта.наименование
ORDER BY COUNT(*) DESC;
На заказ: VBA, Excel mc-black@yandex.ru
- Игорь Акопян
- Сообщения: 1419
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
только по структуре напрашивается не
Устройства(СерийныйНомер,id_модели,...) и
РемонтУстройств(id_ремонта,id_причины,СерийныйНомер,...)
а
Устройства(id_Устройства, СерийныйНомер,id_модели,...) и
РемонтУстройств(id_ремонта,id_причины,id_Устройства,...)
ибо серийник строка скорее всего, а ключи по строкам - не айс
Устройства(СерийныйНомер,id_модели,...) и
РемонтУстройств(id_ремонта,id_причины,СерийныйНомер,...)
а
Устройства(id_Устройства, СерийныйНомер,id_модели,...) и
РемонтУстройств(id_ремонта,id_причины,id_Устройства,...)
ибо серийник строка скорее всего, а ключи по строкам - не айс
-
- Сообщения: 2
- Зарегистрирован: 30 ноя 2009, 18:34
серийник тоже число. первоначально был id_устройства, но преподу показалось, что идентифицируищих полей хватает и без id... приходиться подчиняться ибо это курсач)Игорь Акопян писал(а):только по структуре напрашивается не
Устройства(СерийныйНомер,id_модели,...) и
РемонтУстройств(id_ремонта,id_причины,СерийныйНомер,...)
а
Устройства(id_Устройства, СерийныйНомер,id_модели,...) и
РемонтУстройств(id_ремонта,id_причины,id_Устройства,...)
ибо серийник строка скорее всего, а ключи по строкам - не айс
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Спасибо всем, что откликнулись)
я вчера сама довела эти запросы до ума, но наверно не рационально: я создала представление, и уже из этой виртуальной таблицы выбирала максимум.
как на Ваш взгляд такой ход?
- Игорь Акопян
- Сообщения: 1419
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
вполне нормальный. Скорость устраивает? Функцию на него возложенную выполняет? Ну и славно.
ЗЫ. Серийник - число? Оригинально... У меня вот вокруг ни один прибор к вам не внести будет... Ну да дело хозяйское
ЗЫ. Серийник - число? Оригинально... У меня вот вокруг ни один прибор к вам не внести будет... Ну да дело хозяйское
ЗЫ. Хотелось бы, чтоб модератор поправил название топика
Запросы с агрегатными функциями (а не агрегированными)
Запросы с агрегатными функциями (а не агрегированными)