Добрый день, подскажите, пожалуйста решение.
Существует справочник сотрудников с указанием даты рождения сотрудника (тип "дата"). Необходимо написать отчет (используя только один запрос без обработки результата запроса в модуле), чтобы получить за указанный период таблицу распределения сотрудников по возрасту следующего вида:
---
Ну вот я тут накидал, запрос крайне кривой, с условностями, но как отправная точка - сойдет

```1c
    ВЫБРАТЬ
    ФизическиеЛица.Ссылка КАК Ссылка,
    ФизическиеЛица.ДатаРождения КАК ДатаРождения,
    РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) КАК Год,
    МЕСЯЦ(ФизическиеЛица.ДатаРождения) КАК Месяц
    ПОМЕСТИТЬ ВозрастИМесяц
    ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
    ГДЕ
    НЕ ФизическиеЛица.ЭтоГруппа
    И НЕ ФизическиеЛица.ПометкаУдаления
    И НЕ ФизическиеЛица.ДатаРождения = &ПустаяДата
    И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВЫБОР КОГДА ВозрастИМесяц.Год МЕЖДУ 0 И 10
    ТОГДА "Группа 0"
    ИНАЧЕ ВЫБОР
    КОГДА ВозрастИМесяц.Год МЕЖДУ 11 И 20
    ТОГДА "Группа 1"
    ИНАЧЕ ВЫБОР
    КОГДА ВозрастИМесяц.Год МЕЖДУ 21 И 30
    ТОГДА "Группа 2"
    ИНАЧЕ ВЫБОР
    КОГДА ВозрастИМесяц.Год МЕЖДУ 31 И 40
    ТОГДА "Группа 3"
    ИНАЧЕ ВЫБОР
    КОГДА ВозрастИМесяц.Год МЕЖДУ 41 И 50
    ТОГДА "Группа 4"
    ИНАЧЕ "Группа 5"
    КОНЕЦ
    КОНЕЦ
    КОНЕЦ
    КОНЕЦ
    КОНЕЦ КАК Группа,
    ВозрастИМесяц.Месяц КАК Месяц,
    СУММА(1) КАК Количество
    ПОМЕСТИТЬ КоличествоИМесяц
    ИЗ
    ВозрастИМесяц КАК ВозрастИМесяц

    СГРУППИРОВАТЬ ПО
    ВозрастИМесяц.Месяц,
    ВозрастИМесяц.Год
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    КоличествоИМесяц.Группа КАК Группа,
    СУММА(КоличествоИМесяц.Количество) КАК Январь,
    0 КАК Февраль,
    0 КАК Март,
    0 КАК Апрель,
    0 КАК Май,
    0 КАК Июнь,
    0 КАК Июль,
    0 КАК Август,
    0 КАК Сентябрь,
    0 КАК Октябрь,
    0 КАК Ноябрь,
    0 КАК Декабрь
    ПОМЕСТИТЬ ВременнаяТаблица
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 1

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 2

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 3

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 4

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 5

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 6

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 7

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 8

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 9

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 10

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 11

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество)
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 12

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВременнаяТаблица.Группа КАК Группа,
    СУММА(ВременнаяТаблица.Январь) КАК Январь,
    СУММА(ВременнаяТаблица.Февраль) КАК Февраль,
    СУММА(ВременнаяТаблица.Март) КАК Март,
    СУММА(ВременнаяТаблица.Апрель) КАК Апрель,
    СУММА(ВременнаяТаблица.Май) КАК Май,
    СУММА(ВременнаяТаблица.Июнь) КАК Июнь,
    СУММА(ВременнаяТаблица.Июль) КАК Июль,
    СУММА(ВременнаяТаблица.Август) КАК Август,
    СУММА(ВременнаяТаблица.Сентябрь) КАК Сентябрь,
    СУММА(ВременнаяТаблица.Октябрь) КАК Октябрь,
    СУММА(ВременнаяТаблица.Ноябрь) КАК Ноябрь,
    СУММА(ВременнаяТаблица.Декабрь) КАК Декабрь
    ИЗ
    ВременнаяТаблица КАК ВременнаяТаблица

    СГРУППИРОВАТЬ ПО
    ВременнаяТаблица.Группа
    УПОРЯДОЧИТЬ ПО ГРУППА
```

И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0 - Потому что у меня затесался сотрудник из будущего
---
свой вариант?
---
что именно не получилось сделать в запросе?
---
а если мне 15 числа второго месяца исполнилось 20 лет - я куда? в первую или во вторую группу? или в обе?
---
наверное имелось ввиду, что на дату формирования отчета и распределение по месяцам рождения
---
Кросс - отчет?
---
это все условия задачи. примерный вариант я смог накидать только так, но это за один месяц

```1c
    ВЫБРАТЬ
    СУММА(ВЫБОР
    КОГДА РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) < 20
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ) КАК Меньше20,
    СУММА(ВЫБОР
    КОГДА РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) >= 20
    И РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) <= 30
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ) КАК ВозрастОт20До30,
    СУММА(ВЫБОР
    КОГДА РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) >= 31
    И РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) <= 40
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ) КАК ВозрастОт31До40,
    СУММА(ВЫБОР
    КОГДА РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) >= 41
    И РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) <= 50
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ) КАК ВозрастОт41До50,
    СУММА(ВЫБОР
    КОГДА РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) >= 51
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ) КАК Больше50,
    НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ) КАК Период
    ИЗ
    Справочник.Сотрудники КАК Сотрудники,
    ВТ_Период КАК ВТ_Период
```
---
Я бы лично отдельным запросом посчитал возраст сотрудника, и месяц его рождения.
А вторым запросом через ОБЪЕДИНИТЬ раскидывал бы сотрудников на условии что месяц тот который нужен.
Но 11 ОБъединений...
---
+ еще при рассчете надо учитывать високосные года
---
Вы же понимаете, что вам нужна еще и таблица с месяцами(первое число каждого месяца) за выбранный период?
Формируйте таблицу и соединяйте со справочником.
---
думаю здесь нет принципиального условия по дню месяца. можно просто на начало месяца
---
Ну вот я тут накидал, запрос крайне кривой, с условностями, но как отправная точка - сойдет

```1c
    ВЫБРАТЬ
    ФизическиеЛица.Ссылка КАК Ссылка,
    ФизическиеЛица.ДатаРождения КАК ДатаРождения,
    РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) КАК Год,
    МЕСЯЦ(ФизическиеЛица.ДатаРождения) КАК Месяц
    ПОМЕСТИТЬ ВозрастИМесяц
    ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
    ГДЕ
    НЕ ФизическиеЛица.ЭтоГруппа
    И НЕ ФизическиеЛица.ПометкаУдаления
    И НЕ ФизическиеЛица.ДатаРождения = &ПустаяДата
    И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВЫБОР КОГДА ВозрастИМесяц.Год МЕЖДУ 0 И 10
    ТОГДА "Группа 0"
    ИНАЧЕ ВЫБОР
    КОГДА ВозрастИМесяц.Год МЕЖДУ 11 И 20
    ТОГДА "Группа 1"
    ИНАЧЕ ВЫБОР
    КОГДА ВозрастИМесяц.Год МЕЖДУ 21 И 30
    ТОГДА "Группа 2"
    ИНАЧЕ ВЫБОР
    КОГДА ВозрастИМесяц.Год МЕЖДУ 31 И 40
    ТОГДА "Группа 3"
    ИНАЧЕ ВЫБОР
    КОГДА ВозрастИМесяц.Год МЕЖДУ 41 И 50
    ТОГДА "Группа 4"
    ИНАЧЕ "Группа 5"
    КОНЕЦ
    КОНЕЦ
    КОНЕЦ
    КОНЕЦ
    КОНЕЦ КАК Группа,
    ВозрастИМесяц.Месяц КАК Месяц,
    СУММА(1) КАК Количество
    ПОМЕСТИТЬ КоличествоИМесяц
    ИЗ
    ВозрастИМесяц КАК ВозрастИМесяц

    СГРУППИРОВАТЬ ПО
    ВозрастИМесяц.Месяц,
    ВозрастИМесяц.Год
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    КоличествоИМесяц.Группа КАК Группа,
    СУММА(КоличествоИМесяц.Количество) КАК Январь,
    0 КАК Февраль,
    0 КАК Март,
    0 КАК Апрель,
    0 КАК Май,
    0 КАК Июнь,
    0 КАК Июль,
    0 КАК Август,
    0 КАК Сентябрь,
    0 КАК Октябрь,
    0 КАК Ноябрь,
    0 КАК Декабрь
    ПОМЕСТИТЬ ВременнаяТаблица
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 1

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 2

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 3

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 4

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 5

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 6

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 7

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 8

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 9

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0,
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 10

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество),
    0
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 11

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    КоличествоИМесяц.Группа,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    СУММА(КоличествоИМесяц.Количество)
    ИЗ
    КоличествоИМесяц КАК КоличествоИМесяц
    ГДЕ
    КоличествоИМесяц.Месяц = 12

    СГРУППИРОВАТЬ ПО
    КоличествоИМесяц.Группа
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВременнаяТаблица.Группа КАК Группа,
    СУММА(ВременнаяТаблица.Январь) КАК Январь,
    СУММА(ВременнаяТаблица.Февраль) КАК Февраль,
    СУММА(ВременнаяТаблица.Март) КАК Март,
    СУММА(ВременнаяТаблица.Апрель) КАК Апрель,
    СУММА(ВременнаяТаблица.Май) КАК Май,
    СУММА(ВременнаяТаблица.Июнь) КАК Июнь,
    СУММА(ВременнаяТаблица.Июль) КАК Июль,
    СУММА(ВременнаяТаблица.Август) КАК Август,
    СУММА(ВременнаяТаблица.Сентябрь) КАК Сентябрь,
    СУММА(ВременнаяТаблица.Октябрь) КАК Октябрь,
    СУММА(ВременнаяТаблица.Ноябрь) КАК Ноябрь,
    СУММА(ВременнаяТаблица.Декабрь) КАК Декабрь
    ИЗ
    ВременнаяТаблица КАК ВременнаяТаблица

    СГРУППИРОВАТЬ ПО
    ВременнаяТаблица.Группа
    УПОРЯДОЧИТЬ ПО ГРУППА
```

И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0 - Потому что у меня затесался сотрудник из будущего
---
Да, такой отчет хорошо выглядит, спасибо!
---
Это еще не конечный отчет, а только результат запроса
---
эх, если бы еще экзамен и степень го..нокодости проверял, было бы здорово!!

вот например такой код делает тоже что и выше, но гораздо понятнее/читабельнее

```1c
    Выбор
    Когда ВозрастИМесяц <= 10 Тогда "Группа 0"
    Когда ВозрастИМесяц <= 20 Тогда "Группа 1"
    Когда ВозрастИМесяц <= 30 Тогда "Группа 2"
    Когда ВозрастИМесяц <= 40 Тогда "Группа 3"
    Когда ВозрастИМесяц <= 50 Тогда "Группа 4"
    Иначе "Группа 5"
    КОНЕЦ КАК Группа,
```
---
Я писал "на коленке" - так что я особо в "читабельность" не всматривался
---
Можно в принципе еще пристать к тому как я возраст считаю: не делая +1 если месяц рождения меньше чем текущая дата
Можно первые два запроса слепить в один, так как над одними и те же данные (просто добавить столбцов из второго запроса к первому)
---
ну извиняюсь, просто в типовых базах часто вижу такие же конструкции,
все время удивляюсь почему именно так пишут с большой вложенностью?

а по поводу оптимизации, что то вообще меня клинит, зачем вообще вся эта длинная кишка из объединений?
всего один запрос и поместить его в СКД, оно все посчитает и количество и по месяцам сгруппирует.
---
Ну так задача вроде как была в том, чтобы получить данный результат не прибегая к скд
---
СКД -зло.
---
СКД великолепно!
---
эээ, читаем внимательно
Необходимо написать отчет (используя только один запрос без обработки результата запроса в модуле),
написать отчет - все видят?
используя только один запрос без обработки результата запроса в модуле - чем не СКД?
один запрос и ни строчки кода в модуле!!!

(20) СКД -зло.
- может вы его просто не умеете готовить?
---
- может вы его просто не умеете готовить? Повар может уметь готовить разные блюда. Но не обязан их любить.
---
```1c
    ВЫБРАТЬ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) КАК КоличествоСотрудников,
    ВЫБОР
    КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 20
    ТОГДА "Моложе 20 лет"
    КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 20
    И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 30
    ТОГДА "От 20 до 30 лет"
    КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 30
    И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 40
    ТОГДА "От 30 до 40 лет"
    КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 40
    И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 50
    ТОГДА "От 40 до 50 лет"
    ИНАЧЕ "Старше 50 лет"
    КОНЕЦ КАК Возраст,
    НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, ГОД, -1 * ГОД(ФизическиеЛица.ДатаРождения) + 2), МЕСЯЦ) КАК МесяцРождения
    ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
    ГДЕ
    НЕ ФизическиеЛица.ЭтоГруппа
    И НЕ ФизическиеЛица.ПометкаУдаления
    И НЕ ФизическиеЛица.ДатаРождения = ДАТАВРЕМЯ(1, 1, 1)
    И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0

    СГРУППИРОВАТЬ ПО
    ВЫБОР
    КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 20
    ТОГДА "Моложе 20 лет"
    КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 20
    И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 30
    ТОГДА "От 20 до 30 лет"
    КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 30
    И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 40
    ТОГДА "От 30 до 40 лет"
    КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 40
    И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 50
    ТОГДА "От 40 до 50 лет"
    ИНАЧЕ "Старше 50 лет"
    КОНЕЦ,
    НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, ГОД, -1 * ГОД(ФизическиеЛица.ДатаРождения) + 2), МЕСЯЦ)
```

Даже написал.
У поля МесяцРождения поставил формат "ДФ=MMMM".

С помощью СКД собрал отчёт.
---
Неплохо было бы увидеть *.epf
---
Ничего интересного, поверь мне. Текст запроса есть. Настройки в картинках. Структура отчёта конструктором собрана.
---
Я просто не совсем понимаю как у СКД делается то, что я в запросе сделал с помощью Объединения