Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрос на группировку данных (Access 2007)
 
 автор: julia89spb   (30.05.2011 в 18:59)   личное сообщение
19 Кб.
 
 

Ребята! подскажите, как сделать запрос, чтобы данных группировались по интервалам? Например, по возрасту: до 25, от 26 до 35 и т.д.
У меня сделан запрос по возрасту, отображается сколько человек какого возраста, но мне нужны интервалы...

  Ответить  
 
 автор: Анатолий (Киев)   (30.05.2011 в 20:16)   личное сообщение
 
 

Я бы написал в общем модуле функцию, получающую дату рождения, ПРАВИЛЬНО(!) вычисляющую возраст и возвращающую название интервала (типа "18-25", "26-35" и т.д.). В запросе надо создать вычисляемое поле с этой функцией и по нему группировать.

  Ответить  
 
 автор: julia89spb   (30.05.2011 в 20:31)   личное сообщение
 
 

что значит "правильно"?
у меня вроде правильно...т.е. учитывается было ДР в этом году или ещё нет...

в том-то и проблема, что я не знаю, как эту функцию написать:)

  Ответить  
 
 автор: Дядя Федор   (31.05.2011 в 13:17)   личное сообщение
 
 

обсуждали уже это . ищите на форуме

  Ответить  
 
 автор: Stanislav   (02.06.2011 в 15:34)   личное сообщение
25 Кб.
 
 

Заходишь в редактор VBA, создаешь там новый модуль.
В модуле объявляешь функцию:

public function GetAgeInterval (Age as Integer)
if Age < 25 then
GetAgeInterval = 1 'первый интервал
elseif Age >= 25 AND Age <35 then
GetAgeInterval = 2
'и т.д.
end if
end function

потом создаешь запрос на основе таблицы Age, в нем прописываешь такое вычисляемое поле: Interval: GetAgeInterval([Age])

см. пример.

  Ответить  
 
 автор: Силblч   (31.05.2011 в 14:54)   личное сообщение
 
 

а я бы через таблицу :) в которой диапазоны возрастов указаны и title

вернее даже без бы :) так и делаю в большинстве своем

  Ответить  
 
 автор: Stanislav   (02.06.2011 в 15:38)   личное сообщение
 
 

не понял, поясни подробней, плиз. Объединение таблиц что ли?

  Ответить  
 
 автор: Силblч   (02.06.2011 в 15:49)   личное сообщение
 
 

да, в одной таблице, назовем её agegrp
agefrom | agetill | title

а в запросе

select age.age, agegrp.title
from age
left join agegrp on age.age between agegrp.agefrom and agegrp.agetill

если between не прокатит (смутно помню) то его надо или взять в круглые скобки

left join agegrp on (age.age between agegrp.agefrom and agegrp.agetill)

или использовать >= <=

  Ответить  
 
 автор: Дядя Федор   (02.06.2011 в 15:55)   личное сообщение
 
 

http://hiprog.com/forum/read.php?id_forum=1&id_theme=8139&page=3

это то же самое, наверное, курсовик с разными данными

  Ответить  
 
 автор: Силblч   (02.06.2011 в 16:02)   личное сообщение
 
 

пофик я давно использую этот метод

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList