Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 29

Запрос с выборкой по кол-ву одинаковых строк

16.12.2012, 02:34. Показов 1729. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Полистал ваш форум, нужной мне информации не нашел, точнее, часть нашел, но нужных строк так и не увидел.

Использую Access 2010.
Есть БД состоящая из 2 таблиц: "Клиенты" и "Кредит". В таблице "Клиенты", содержится вся информация о клиенте, т.е. его ФИО, адресс, инн, код клиента и т.д., в "Кредит", содержится информация о сумме кредита, виде и т.д, а так-же, код клиента (так как у клиента, может быть больше чем 1 кредит).

Необходимо написать SQL запрос, который выведет: код клиента, ФИО, дату рождения и кол-во кредитов всех клиентов, которые имеют больше одного кредита.

Проблема в том, что я не знаю, как написать запрос, который проверит кол-во кредитов у клиента, а так-же посчитает общее кол-во кредитов и выведет лишь их цифру, а не сами кредиты.

Зарание спасибо !
Миниатюры
Запрос с выборкой по кол-ву одинаковых строк  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.12.2012, 02:34
Ответы с готовыми решениями:

Сделать таблицу n строк: адрес, кол-во проживающих, кол-во комнат и кол-во метров в каждой комнате
В задании нужно сделать таблицу n строк. Адрес, кол-во проживающих, кол-во комнат и кол-во метров в каждой комнате. public class second {...

Запрос без повторения одинаковых строк
Написать запрос, позволяющий получить из таблицы EXAM_MARKS значения столбца MARK (экзаменационная оценка) для всех студентов, исключив из...

составить обьемную диаграмму с выборкой кол-ва столбцов и с процентным соотношением
Помогите братишки составить обьемную диаграмму с выборкой кол-ва столбцов и с процентным соотношением Диаграмму в форме самим...

8
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 17
16.12.2012, 02:43
SQL
1
2
3
4
SELECT Кредиты.КодКлиента, Клиенты.ФИО, COUNT(*)
FROM Кредиты INNER JOIN Клиенты ON Кредиты.КодКлиента = Клиенты.КодКлиента
GROUP BY Кредиты.КодКлиента, Клиенты.ФИО
HAVING COUNT(*)>1
0
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 29
16.12.2012, 15:38  [ТС]
Немного дописал запрос, но работает правильно, спасибо большое !!!
SQL
1
2
3
4
SELECT Кредит.[Код клиента], Клиенты.[ФИО], Клиенты.[Дата рождения], COUNT(*) AS [Кол-во кредитов]
FROM Кредит INNER JOIN Клиенты ON Кредит.[Код клиента] = Клиенты.[Код клиента]
GROUP BY Кредит.[Код клиента], Клиенты.[ФИО],Клиенты.[Дата рождения]
HAVING COUNT(*)>1
Подскажите, а можно заместо COUNT(*) использовать COUNT([Код Клиента]) как-то ? У меня выдает ошибку, когда я пытаюсь так написать...
0
2903 / 1937 / 210
Регистрация: 05.06.2011
Сообщений: 5,714
16.12.2012, 16:57
Нет, поскольку Код клиента перечислен в group by. Помимо этого, имхо, всё равно, что писать в count, правда, в зависимости от реализации, возможно, разная скорость будет.
0
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 29
16.12.2012, 17:37  [ТС]
Да, в данном случае нету смысла, но допустим, если мне нужно будет сделать такую сортировку, где будет повторяться больше чем одна запись, разве не будет и ту запись учитывать тоже ? Т.е. если будет не только "Код клиента" повторятся, а еще" дата составление договора".
0
2903 / 1937 / 210
Регистрация: 05.06.2011
Сообщений: 5,714
16.12.2012, 17:56
Смысл агрегатного запроса примерно таков: берём обычный запрос, группируем строки по order by, и по каждой такой группе выдаём одну запись. Запись строится из полей, перечисленных в order by и агрегатных функций по группе. Ну, если подробнее, то из выражений от этих элементов. Например, агрегатная функция count выдаёт количество строк в группе (независимо от аргумента, по-моему). Чего ты хочешь, я не очень понял...
1
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
16.12.2012, 18:26
Цитата Сообщение от Demonenok Посмотреть сообщение
Подскажите, а можно заместо COUNT(*) использовать COUNT([Код Клиента]) как-то ? У меня выдает ошибку, когда я пытаюсь так написать...
Можете. Но так как поле с именем [Код клиента] есть в обеих участвующих в запросе таблицах, то нужно дополнительно указать имя таблицы, т.е. Кредит.[Код клиента] или Клиенты.[Код клиента]
Цитата Сообщение от iifat
имхо, всё равно, что писать в count
Microsoft несколько иного мнения
Цитата Сообщение от Справка
Функция Count не подсчитывает записи со значениями Null, если только аргумент выражение не содержит подстановочный знак звездочки (*). Если используются знаки звездочки, функция Count вычисляет общее количество записей, включая те, которые содержат пустые поля.
...
Если в аргументе выражение задано несколько полей, функция Count подсчитывает запись только в том случае, если хотя бы одно из полей не содержит значение Null. Если все указанные поля содержат значения Null, запись не подсчитываются.
2
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 29
16.12.2012, 19:01  [ТС]
Теперь все понятно, так и думал, что нужно просто полный путь на таблицу написать, но почему-то не сделал так. Спасибо вам большое за помощь !

Добавлено через 33 минуты
Если кому будет нужен такой-же запрос, то вот как он выглядит в конечном варианте
SQL
1
2
3
4
SELECT Кредит.[Код клиента], Клиенты.[ФИО], Клиенты.[Дата рождения], COUNT(Кредит.[Код клиента]) AS [Кол-во кредитов]
FROM Кредит INNER JOIN Клиенты ON Кредит.[Код клиента] = Клиенты.[Код клиента]
GROUP BY Кредит.[Код клиента], Клиенты.[ФИО], Клиенты.[Дата рождения]
HAVING COUNT(Кредит.[Код клиента])>1;
Запрос проверен и работает правильно.
Всем большое спасибо за помощь !
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
16.12.2012, 20:28
Цитата Сообщение от Demonenok Посмотреть сообщение
Запрос проверен и работает правильно.
Demonenok, так как в ваш запрос не могут просочиться записи таблицы Кредит со значением поля [Код клиента] равным Null (да и вообще, если обеспечена целостность данных, таких записей не должно быть), то не будет разницы в результатах работы вашего запроса с COUNT(Кредит.[Код клиента]) и запроса с COUNT(*), о чем и гласит приведенная мною выше цитата из справки.
Разные результаты могли быть получены, если бы, например, поле [Дата рождения] для некоторых клиентов не было заполнено, т.е. имело значение Null, и в запросе использовалось COUNT([Дата рождения]).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.12.2012, 20:28
Помогаю со студенческими работами здесь

В матрице переставиь 2 средних строки,если кол-во строк четное, первую со средней, если кол-во строк нечетное
Дан массив размером n*n, элементы которого-целые числа. Поменять местами 2 средних строки,если кол-во строк четное,и первую со средней...

Работа с базой данных MySQL средствами PHP. Запрос без повторения одинаковых строк
Здравствуйте,помогите пожалуйста.. ну,ни как не могу разобраться в запросе...((((( Написать запрос, позволяющий получить из таблицы...

Запрос к БД Acces для расчета кол-ва лет и кол-ва дней до ДР
Добрый день! Очень нужна помощь! Есть БД в Access: простенькая табличка: ФИО, День рождения В делфи пишу прогу. На форме в таблицу...

Запрос с выборкой
Помогите пожалуйста составить запрос с выборкой... Запрос не выводит тех кто еще не оплатил, оплатил но нету льготы и у кого нету льготы....

Запрос выборкой
Основные запросы к базе данных: - Список квартир, параметры которых находятся в заданных клиентом диапазонах. Т.е. мне надо что-бы...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru