Деление сотрудников по возрастным группам

Maria_RU
Дата: 25.12.2011 00:10:28
Имеется таблица Сотрудники: Таб_номер, ФИО, Дата_рождения.
Еще создала таблицу Возрастные_группы: Границы, Max, Min. Заполнена таблица так:
Границы Max Min
0-23 0 23
24-35 24 35
36-45 36 45
46-55 46 55
56-64 56 64
более 65 65 120

Мне нужно создать запрос который бы считал сколько сотрудников в каждой возрастной группе.

Заранее спасибо за помощь!
Maria_RU
Дата: 25.12.2011 00:20:14
еще у меня создан запрос на получение точного возраста сотрудников.

SELECT Сотрудники.Таб_номер, Сотрудники.ФИО, IIf(DateSerial(Year(Date()),Month([Сотрудники].[Дата рождения]),Day([Сотрудники].[Дата рождения]))<=Date(),Year(Date())-Year([Сотрудники].[Дата рождения]),Year(Date())-Year([Сотрудники].[Дата рождения])-1) AS [Полных лет]
FROM Сотрудники;

может как-нибудь его использовать. все перепробовала. но не получаются возрастные группы
qwerty112
Дата: 25.12.2011 00:30:24
Maria_RU
еще у меня создан запрос на получение точного возраста сотрудников.

SELECT Сотрудники.Таб_номер, Сотрудники.ФИО, IIf(DateSerial(Year(Date()),Month([Сотрудники].[Дата рождения]),Day([Сотрудники].[Дата рождения]))<=Date(),Year(Date())-Year([Сотрудники].[Дата рождения]),Year(Date())-Year([Сотрудники].[Дата рождения])-1) AS [Полных лет]
FROM Сотрудники;

может как-нибудь его использовать. все перепробовала. но не получаются возрастные группы

попроще можно
SELECT Сотрудники.Таб_номер, Сотрудники.ФИО, 
datediff("yyyy", [Сотрудники].[Дата рождения], Date())+(format(Date(), "mmdd") < format([Сотрудники].[Дата рождения], "mmdd")) AS [Полных лет]
FROM Сотрудники;

нуу и итого
SELECT Возрастные_группы.Границы, count(Сотрудники.Таб_номер) as cnt
FROM Сотрудники inner join Возрастные_группы 
on (datediff("yyyy", [Сотрудники].[Дата рождения], Date())
  +(format(Date(), "mmdd") < format([Сотрудники].[Дата рождения], "mmdd")) 
between Возрастные_группы.Min and Возрастные_группы.Max)
group by Возрастные_группы.Границы
mds_world
Дата: 25.12.2011 00:37:16
Maria_RU
Имеется таблица Сотрудники: Таб_номер, ФИО, Дата_рождения.
Еще создала таблицу Возрастные_группы: Границы, Max, Min. Заполнена таблица так:
Границы Max Min
0-23 0 23
24-35 24 35
36-45 36 45
46-55 46 55
56-64 56 64
более 65 65 120

Мне нужно создать запрос который бы считал сколько сотрудников в каждой возрастной группе.

По-моему вы перепутали поля [Min] и [Max]. Поле [Min] больше поля [Max]. Сделал в расчете на то, что в примере описка
select count(*) as kolvo, vg.[Min], vg.[Max], vg.Границы
from Сотрудники s inner join Возрастные_группы vg 
      on Dateadd("yyyy", vg.[Min], s.ДатаРождения)<=date() and Dateadd("yyyy", vg.[Max], s.ДатаРождения)>=date()
group by vg.[Min], vg.[Max], vg.Границы
Maria_RU
Дата: 25.12.2011 01:10:27
qwerty112, СПАСИБО-СПАСИБО. все работает как хотела.
Maria_RU
Дата: 25.12.2011 01:11:48
mds_world, спасибо за помощь. вы все правильно поняли - я перепутала min и max когда в теме печатала.
Maria_RU
Дата: 25.12.2011 01:31:20
пожалуйста, нужен еще запрос который сосчитает количество многодетных (3 и более детей) и бездетных сотрудников
кроме таблицы сотрудники: Таб_номер, ФИО, Дата_рождения. еще есть табл дети: Таб_номер_сотрудника, ФИО_ребенка.

p.s. вроде аналогично. но не получается. не судите строго, второй день scl изучаю