![]() |
|
Модераторы: Akina |
![]()
|
|
| x_Coder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 26.1.2004 Репутация: нет Всего: нет |
Я пишу программу на VisualBasic 6.
Использую бузу Access (.mdb). Так вот в чем, собственно, вся загвоздка. У меня есть таблица Clients. В ней содержится информация про посетителей гостиницы. Структура таблицы следующая: _________________________________________ Id - int PRIMARY KEY - (номер) Name - Text - (имя) Surname - Text - (фамилия) Second_name - Text - (отчество) Country - Text - (страна) City - Text - (город) Passport_number - Text - (номер паспорта) Date - Date/Time - (дата поселения) ________________________________________ Теперь предположим мне нужно создать отчет за месяц. В отчет должна помещаться информация про 10 самых частых посетителей. Каким образом можно найти среди всех только десять ? Какой запрос нужно для этого сформировать? И второе. Допустим мне нужно создать отчет в котором будет выведена информация про количество людей из каждой страны и города. Примерно так: Россия - Москва - 100 человек Киев - Украина - 253 человека ................................................... Всего 353 человека Какой запрос нужно для этого сформировать? Ясно, что здесь нужно будет использовать что-то вроде следующего WHERE City = 'Город' AND Country = 'Страна' Заранее благодарен, x_Coder! |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Если мы считаем, что Name, Surname и Passport_number однозначно определяют человека, то так:
SELECT TOP 10 COUNT(*), Name, Surname, Passport_number FROM <table> GROUP BY Name, Surname, Passport_number ORDER BY 1 DESC; |
|||
|
||||
| x_Coder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 26.1.2004 Репутация: нет Всего: нет |
Что ты имееш ввиду однозначно.
В таблице посетитель может встречаться несколько раз. Данные идут следующим образом 1 Иванов Петр Иванович 2 Петров Сергей Владимирович 3 Чумак Ирина Казимировна 4 Суржикова Алена Трефилиевна ....... N Петров Сергей Владимирович То есть записи как бы повторяются, но у них, как правило, даты разные. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Это значит, что это все один и тот же человек. А определять это только по ФИО не разумно. Даже в одном городе может быть несколько человек с одним и тем же ФИО. А вот номер паспорта скорее всего даст такую гарантию. Просто группировать надо так, чтобы быть уверенным, что ты сгруппируешь данные ТОЛЬКО по одному человеку. |
|||
|
||||
| x_Coder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 26.1.2004 Репутация: нет Всего: нет |
А как же такое сделать?
Допустим мне нужно создать отчет в котором будет выведена информация про количество людей из каждой страны и города. Примерно так: Россия - Москва - 100 человек Киев - Украина - 253 человека ................................................... Всего 353 человека |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Значит группируешь по городам. Или группируешь по странам. Но одновременно не получится. Город же более мелкая единица группировки - значит только по ней. Ты можешь потом такой список отсортировать по стране и получить некоторое подобие группировки по стране. И если ты используешь какой-то репортер (библиотека для сотждания отчетов), то там часто есть возможность группировать по нескольким полям. Тут как раз и получишь группировку по стране. Например: Город 1 - 12 Город 2 - 23 Город 3 - 20 Россия - 55 Город 4 - 15 Город 5 - 12 Украина - 27 Т.е. получается как-бы внешняя группировка - кроме городов уже сам репортер группирует еще и по странам. |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |