Агрегатная функция Count() в запросе с несколькими таблицами
Есть две таблицы.
Первая таблица Reader содержит сведения о читателях библиотеки.
Поля таблицы: LibraryCardNumber, ReaderSurname, ReaderName, ReaderPatronymic, BirthDate, Address, Phone.
Вторая таблицы BookDelivery содержит информацию о выданних книгах.
Поля таблицы: BookID, ReaderLibraryCardNumber, DateStart, DateReturned.
Мне нужно вывести информацию о читателях и количестве виданных им книг.
С помощью агрегатной функции Count() я находила количество таким образом:
SELECT ReaderLibraryCardNumber as [Номер читательского билета],
Count(*) as [Количество книг]
FROM BookDelivery
GROUP BY ReaderLibraryCardNumber;
Но мне недостаточно знать только номер читательского билета, нужна и другая информация о читателе из таблицы Reader (например, имя и фамилия читателя). Пыталась получить её таким образом:
SELECT BookDelivery.ReaderLibraryCardNumber as [Номер читательского билета],
Reader.ReaderName as [Имя],
Reader.ReaderSurname as [Фамилия],
Count(*) as [Количество книг]
FROM BookDelivery, Reader
WHERE BookDelivery.ReaderLibraryCardNumber = Reader.LibraryCardNumber
GROUP BY ReaderLibraryCardNumber;
Но Access ругается: "Ваш запрос не содержит указанное выражение "Имя" как часть агрегатной функции". Можно ли как-то оформить запрос, чтобы и количество вычислялось, и поля из другой таблицы выводилися?
Ответы (1 шт):
SELECT Reader.LibraryCardNumber as [Номер читательского билета],
Reader.ReaderName as [Имя],
Reader.ReaderSurname as [Фамилия],
Count(*) as [Количество книг]
FROM BookDelivery, Reader
WHERE BookDelivery.ReaderLibraryCardNumber = Reader.LibraryCardNumber
GROUP BY Reader.LibraryCardNumber,
Reader.ReaderName,
Reader.ReaderSurname;