Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Подсчёт полей  [new]
BBS_BOSS
Member

Откуда:
Сообщений: 4
Есть три таблицы: таблица с записями о том когда, кто взял или вернул книгу, таблица с данными о книге, таблица с фио авторов (фото во вложении)
Нужно узнать книги какого автора брали чаще других.
Картинка с другого сайта.
26 апр 21, 10:39    [22314284]     Ответить | Цитировать Сообщить модератору
 Re: Подсчёт полей  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7350
SELECT TOP 1 COUNT(idAuthor) FROM booksinfo ORDER BY idAuthor DESC


Сообщение было отредактировано: 26 апр 21, 11:07
26 апр 21, 11:12    [22314307]     Ответить | Цитировать Сообщить модератору
 Re: Подсчёт полей  [new]
superpsih
Member

Откуда:
Сообщений: 12
Тестовую базу приложили бы. А так, необходимо сделать запрос Select по полю с условием на поле Operation. Запрос без условия:
SELECT Authors.FIO, Count(Authors.FIO) AS CountOfFIO
FROM (Authors INNER JOIN BooksInfo ON Authors.ID = BooksInfo.IdAuthor) INNER JOIN RegistrationOfIssuance ON BooksInfo.ID = RegistrationOfIssuance.IdNumberBook
GROUP BY Authors.FIO;
26 апр 21, 11:14    [22314310]     Ответить | Цитировать Сообщить модератору
 Re: Подсчёт полей  [new]
BBS_BOSS
Member

Откуда:
Сообщений: 4
superpsih, Спасибо тебе. То что нужно <3
26 апр 21, 11:16    [22314314]     Ответить | Цитировать Сообщить модератору
 Re: Подсчёт полей  [new]
BBS_BOSS
Member

Откуда:
Сообщений: 4
superpsih, Прости затупил. Проблема решена

Сообщение было отредактировано: 26 апр 21, 11:28
26 апр 21, 11:26    [22314324]     Ответить | Цитировать Сообщить модератору
 Re: Подсчёт полей  [new]
BBS_BOSS
Member

Откуда:
Сообщений: 4
Мне нужно было найти самого популярного автора за текущий год.
Схема представлена в вопросе, а итоговый SQL запрос вот:
SELECT Authors.FIO, Count(Authors.FIO) AS CountOfFIO
FROM (Authors INNER JOIN BooksInfo ON Authors.ID = BooksInfo.IdAuthor) INNER JOIN RegistrationOfIssuance ON BooksInfo.ID = RegistrationOfIssuance.IdNumberBook
WHERE (([RegistrationOfIssuance].[DateOperation]>=#1/1/2021#))
GROUP BY Authors.FIO, RegistrationOfIssuance.Operation
HAVING (((RegistrationOfIssuance.Operation) Like "Взял"))
ORDER BY Count(Authors.FIO) DESC;

Всем спасибо, все свободны)))

Сообщение было отредактировано: 26 апр 21, 17:20
26 апр 21, 11:38    [22314339]     Ответить | Цитировать Сообщить модератору
 Re: Подсчёт полей  [new]
superpsih
Member

Откуда:
Сообщений: 12
BBS_BOSS,
за текущий год лучше так:
SELECT Authors.FIO, Count(Authors.FIO) AS CountOfFIO
FROM (Authors INNER JOIN BooksInfo ON Authors.ID = BooksInfo.IdAuthor) INNER JOIN RegistrationOfIssuance ON BooksInfo.ID = RegistrationOfIssuance.IdNumberBook
WHERE Year([RegistrationOfIssuance.DateOperation])=Year(Date())
GROUP BY Authors.FIO;

Иначе, в следующем году придётся переделывать запрос.

Сообщение было отредактировано: 26 апр 21, 11:35
26 апр 21, 11:43    [22314344]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить