|
19 Кб. |
|
| Ребята! подскажите, как сделать запрос, чтобы данных группировались по интервалам? Например, по возрасту: до 25, от 26 до 35 и т.д.
У меня сделан запрос по возрасту, отображается сколько человек какого возраста, но мне нужны интервалы... | |
|
| |
|
|
|
| Я бы написал в общем модуле функцию, получающую дату рождения, ПРАВИЛЬНО(!) вычисляющую возраст и возвращающую название интервала (типа "18-25", "26-35" и т.д.). В запросе надо создать вычисляемое поле с этой функцией и по нему группировать. | |
|
| |
|
|
|
| что значит "правильно"?
у меня вроде правильно...т.е. учитывается было ДР в этом году или ещё нет...
в том-то и проблема, что я не знаю, как эту функцию написать:) | |
|
| |
|
|
|
| обсуждали уже это . ищите на форуме | |
|
| |
|
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])
см. пример. | |
|
| |
|
|
|
| а я бы через таблицу :) в которой диапазоны возрастов указаны и title
вернее даже без бы :) так и делаю в большинстве своем | |
|
| |
|
|
|
| не понял, поясни подробней, плиз. Объединение таблиц что ли? | |
|
| |
|
|
|
| да, в одной таблице, назовем её 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)
|
или использовать >= <= | |
|
| |
|
|
|
| http://hiprog.com/forum/read.php?id_forum=1&id_theme=8139&page=3
это то же самое, наверное, курсовик с разными данными | |
|
| |
|
|
|
| пофик я давно использую этот метод | |
|
| |