Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Запрос с группировкой

GVK Ученик (172), закрыт 4 года назад
Здравствуйте, помогите, пожалуйста, с запросом, немного запуталась.
Нужно посчитать, сколько устройств было выдано в определенный период.
В общем, есть вот такая наработка:
SELECT
Delivery_of_device.id_records,
Hearing_aids.Device_name(это справочник, из него хочу выводить названия),
Delivery_of_device.Date_of_issue,
Count(Hearing_aids.Device_name) as CountDevice
FROM Delivery_of_device,Hearing_aids
WHERE (Delivery_of_device.id_device = Hearing_aids.id_device)
AND (Delivery_of_device.Date_of_issue >= '" + Дата с формы+ "') AND (Delivery_of_device.Date_of_issue <= '" + Дата с формы + "') GROUP BY Delivery_of_device.id_device";
Не могу понять как грамотно поставить GROUP BY,потому что на данном этапе в запросе пустота. И можно ли вообще группировать что-либо с условием и несколькими таблицами?
Лучший ответ
Jurijus Zaksas Искусственный Интеллект (424636) 4 года назад
>Нужно посчитать, сколько устройств было выдано в определенный период.
В такой формулировке тебе вообще не нужен GROUP BY. Тебе же не надо знать, какие именно устройства были выданы, а только общее количество.

>И можно ли вообще группировать что-либо с условием и несколькими таблицами?
Можно.

SELECT
Count(*) as CountDevice
FROM Delivery_of_device,Hearing_aids
WHERE (Delivery_of_device.id_device = Hearing_aids.id_device)
AND (Delivery_of_device.Date_of_issue >= '" + Дата с формы+ "') AND (Delivery_of_device.Date_of_issue <= '" + Дата с формы + "')
GVKУченик (172) 4 года назад
Я, наверное, неправильно выразилась. У меня же много аппаратов одинаковых выдается, мне нужно их посчитать не в целом а каждый по отдельности, типа:
1 аппарат -4 штуки
2 аппарат -8 штук и так далее
Jurijus Zaksas Искусственный Интеллект (424636) Не "наверное", а точно. Выброси из запроса вот это: Delivery_of_device.Date_of_issue, потому что дата выдачи тебе не важна. Сгруппируй по остальным полям.
Остальные ответы
Многослойный Просветленный (27303) 4 года назад
"потому что на данном этапе в запросе пустота"

Delivery_of_device.Date_of_issue >= '" + Дата с формы+ "'

Date_of_issue - какой тип данных?
Похожие вопросы