Навигация:  МОДУЛЬ "СИСТЕМНОЕ ЯДРО" > ПОДМОДУЛЬ "СТАТИСТИКА" > Простые запросы > Настройка внешнего вида отчета > Подсуммы >

Использование в формуле значения подсуммы для заданного уровня группировки

Предыдущая страницаВернуться в начало главыСледующая страница

В формуле подсуммы можно обратиться к значению подсуммы определенного уровня группировки. Для этого в формуле подсуммы используется дополнитлеьный параметр n, принимающий значения -1, -2 и т.д. Формула выглядит следующим образом:

SUM([Имя_столбца],n)

Отсчет производится от верхнего уровня группировки, который считается нулевым (формула для этого уровня употребляется без параметра n).

Пример

В качестве примера рассмотрим отчет, в котором вычисляется количество посещений каждого врача и процент его посещений от общего количества посещений пациентов.

При формировании запроса выбирается основная таблица История заболевания и связанные с ней - Талон амбулаторного пациента и Врачи и пользователи. Выбираются поля MEDECINS_ID и Специальность таблицы Врачи и пользователи. По ним устанавливается группировка (рис. 2.4.10).

Создаются выражения:

Врач

min(%DOC_NAME_SP())

ФИО врача и специальность

Всего посещений

count(*)

Количество посещений

Всего пациентов

count(distinct MOTCONSU.PATIENTS_ID )

Количество пациентов

Полученный запрос возвращает количество посещений и уникальных пациентов.

 Рисунок 2.4.10. Запрос "Врачи, количество посещений"


Рисунок 2.4.10. Запрос "Врачи, количество посещений"

Нужно вычислить процент посещений для каждого врача. В настройках внешнего вида отчета создается группа по полю Врач (рис. 2.4.11).

 Рисунок 2.4.11. Отчет с группировкой по врачу


Рисунок 2.4.11. Отчет с группировкой по врачу

Затем создается вычислимое поле Всего посещений % (рис. 49). Выражение для подсуммы:

SUM([Всего посещений])*100/SUM([Всего посещений],-1)

Выражение для итоговой подсуммы

SUM([Всего посещений])*100/SUM([Всего посещений])

Здесь

SUM([Всего посещений]) — это количество посещений для уровня группировки Врач,

SUM([Всего посещений],-1)количество посещений, вычисленное для уровня В ИТОГЕ. Параметр n=-1, так как итоговая подсумма отстоит на 1 уровень от группировки Врач.

Итоговая подсумма вычисляется для всех посещений, поэтому формула для нее не содержит дополнительного параметра.

 Рисунок 2.4.12. Формулы для подсуммы "Всего посещений, %"


Рисунок 2.4.12. Формулы для подсуммы "Всего посещений, %"

formula_color

·Кнопками Условное форматирование ячеек групповых подсумм и Условное форматирование ячеек итоговых подсумм открывается окно (рис. 2.4.9), где можно изменить цвет шрифта и фона ячейки в зависимости от значения подсуммы.

Пример отчета представлен на рис. 2.4.13.

 Рисунок 2.4.13. Пример отчета "Врачи, количество посещений"


Рисунок 2.4.13. Пример отчета "Врачи, количество посещений"

Если в отчет добавить уровень группировки — например, создать группировку по отделению (рис. 2.4.14), выражения для поля Всего посещений % изменятся соответствующим образом.

 Рисунок 2.4.14. Отчет с группировками по врачу и отделению


Рисунок 2.4.14. Отчет с группировками по врачу и отделению

Выражение для подсуммы:

SUM([Всего посещений])*100/SUM([Всего посещений],-2)

Выражение для итоговой подсуммы

SUM([Всего посещений])*100/SUM([Всего посещений],-1)

В первом выражении для вычисления итоговой подсуммы используется выражение SUM([Всего посещений],-2), так как уровень группировки Врач отстоит на 2 уровня от итоговой подсуммы (В ИТОГЕ). Во втором выражении вычисляется процент посещений для отделения. Группировка по отеделнию отстоит на 1 уровень от итоговой подсуммы.

Пример отчета представлен на рис. 2.4.15.

 Рисунок 2.4.15. Пример отчета "Врачи, количество посещений"


Рисунок 2.4.15. Пример отчета "Врачи, количество посещений"