Как решить задачу по SQL?

lospirata
На сайте с 24.12.2010
Offline
103
555

Доброе утро. Помогите с решением задачи с запросом на MySQL или T-SQL.

Условия задачи:

Есть 2 таблицы - CollectionT и ItemT. Необходимо сделать выборку Collection.Id, CollectionT.Name, CollectionT.Count тех коллекций, которые содержат меньше 5 элементов. Обращение к двум таблицам нужно сделать в одном запросе.

Рисунок:

Результат запроса:

1 Молоко 4
3 Сыр 3

Исходных данных, к сожалению, нет.

Что у меня получилось:

SELECT CollectionT.Id, CollectionT.Name, COUNT(CollectionT.Name) FROM CollectionT INNER JOIN ItemT ON CollectionT.Id = ItemT.CollectionId WHERE ItemT.CollectionId < 5

Этот код не работает.

It Can't Rain All the Time Блог вебмастера (https://lospirata.ru/)
B
На сайте с 13.02.2008
Offline
262
#1

lospirata, Сначала группировку надо указать, а условие по количеству уже после группировки. Как то так:

SELECT CollectionT.Id, CollectionT.Name, COUNT(CollectionT.Name) FROM CollectionT INNER JOIN ItemT ON CollectionT.Id = ItemT.CollectionId GROUP BY CollectionT.Name HAVING COUNT(CollectionT.Name) < 5

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий