Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для Aleator
102 / 87 / 17
Регистрация: 04.05.2011
Сообщений: 1,330

Сложный запрос

30.05.2012, 10:00. Показов 945. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть таблицы (ID_ - первичный ключ, Код_ -ключи для связи):

Таблица Жанры(ID_жанра, название жанра)
Таблица Книга(ID_книги, Код_жанра, название, автор)
Таблица Экземпляр(ID_экземпляра, Код_книги)
Таблица Абонемент(ID_выдачи,Код_экземпляра, Код_читателя)
Таблица Читатель(ID_читателя, ФИО, Адрес)

Прошу помощи в написании запроса, показывающего сколько экземпляров книг каждого жанра взял каждый читатель
Например:

ID_читателя, ФИО, название жанра - колличество записей в таблице Абонемент

12, Иванов, Фантастика - 10
Приключения - 2

4, Сидорова, Детектив - 10
Любовный роман - 2

Добавлено через 9 часов 6 минут
Эти данные буду использовать в QRChart. Если лучше сделать это не одним запросом, а как-то ещё буду рад выслушать любой совет.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2012, 10:00
Ответы с готовыми решениями:

Сложный SQL запрос
Огромная просьба помочь мне с запросом, у меня есть варианты но выходит очень большой код. Есть 2 таблицы: Акты и Справочники(или классы...

Сделать сложный Запрос
Всем привет, есть форма, на которой размещен ComboBox, в котором диспетчер выбирает место на автостоянке, и есть таблица, в которой...

Сложный SQL запрос для ADOQuery
Возможно ли в зависимости от значения некоторых полей выводить соответствующий результат?? т.е. я ищу что-то вроде if один where не...

10
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
30.05.2012, 10:23
Так попробуем
SQL
1
2
3
4
5
SELECT p.ID_читателя, p.ФИО,  zh.название жанра, COUNT(zh.ID_жанра)
FROM Читатель AS p, Абонемент AS ab, Экземпляр AS ekz, Книга AS book, Жанры AS zh
WHERE p.ID_читателя = ab.Код_читателя AND ab.Код_экземпляра = ekz.ID_экземпляра
  AND ekz.Код_книги = book.ID_книги AND book.Код_жанра = zh.ID_жанра
GROUP BY p.ID_читателя, p.ФИО, zh.ID_жанра
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
30.05.2012, 10:25
SQL
1
SELECT чит.ID_читателя, чит.ФИО, жан.Название_жанра, COUNT (жан.Название_жанра) AS Скока_книг FROM Читатель чит, Жанры жан, Абонемент аб, Экземпляр экз, Книга кн WHERE чит.ID_читателя=аб.Код_читателя AND аб.Код_экзмепляра = экз.ID_экзмепляра AND экз.Код_книги = кн.ID_книги AND кн.Код_жанра = жан.ID_жанра GROUP BY чит.ID_читателя, чит.ФИО, жан.Название_жанра

Не по теме:

Блин, а как строки переносить? :(

1
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
30.05.2012, 10:28
Цитата Сообщение от The_Immortal Посмотреть сообщение
чит.ФИО
ну да просто делал без нее
2
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
30.05.2012, 10:32
Bit_Man,

Не по теме:

как строки-то переносить? :)

1
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
30.05.2012, 10:33
Цитата Сообщение от The_Immortal Посмотреть сообщение
как строки-то переносить?
какие?
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
30.05.2012, 10:34
Bit_Man,

Не по теме:

да у меня все в одну строчку получилось :)


Кстати, а без чит.ФИО (p.ФИО) пашет? У меня кричит без нее...
1
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
30.05.2012, 10:37
если после select'a оставить (в столбцах), а в group убрать то нет. наоборот - да. Enter для строчек
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
30.05.2012, 10:41
Bit_Man, мм, в смысле?

SQL
1
2
3
4
5
SELECT p.ID_читателя, p.ФИО,  zh.название жанра, COUNT(zh.ID_жанра)
FROM Читатель AS p, Абонемент AS ab, Экземпляр AS ekz, Книга AS book, Жанры AS zh
WHERE p.ID_читателя = ab.Код_читателя AND ab.Код_экземпляра = ekz.ID_экземпляра
  AND ekz.Код_книги = book.ID_книги AND book.Код_жанра = zh.ID_жанра
GROUP BY p.ID_читателя, zh.ID_жанра
Вот так вот норм работало или нет?

Цитата Сообщение от Bit_Man Посмотреть сообщение
если после select'a оставить (в столбцах), а в group убрать то нет. наоборот - да.
Я просто фразу не понял)) "Нет" - это не ругается? А "да" - это ругается?
1
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
30.05.2012, 10:51
нет - не пашет! да - пашет!
2
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
30.05.2012, 10:52
Bit_Man, ну вот и разобрались!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.05.2012, 10:52
Помогаю со студенческими работами здесь

сложный запрос (для меня сложный)
Есть таблица с продажами услуг от разных фирм, есть таблица с оплатой за предоставленные услуги (при этом сумма оплат может не совпадать с...

Сложный запрос
Очередная и надеюсь последняя моя тема :D В запросе нужно вывести данные из 5 таблиц (встреча, студент, отец, мать,...

Сложный запрос из БД
Есть БД планшетов. Есть приложение, где выбираешь характеристики - и тебе подбирают планшеты с этими характеристиками. Проблема в...

Сложный запрос
Бодрое утро, подскажите нужно сделать запрос результат которого нужно добавить до текущей таблицы. Как такое провернуть?

Сложный запрос
Делаю поиск по тегам в iamgeboard'е. Есть 3 типа тегов (опционально, т.е. каждый тип может быть, а может и нет): - Обычные: tag1,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru