В отчет может быть добавлена подсумма, вычисляемая только для уникальных значений какого-либо поля:
SUM([Имя_столбца],0,[Имя_поля]),
где
[Имя_столбца] — столбец, значения которого суммируются
0 — параметр, указывающий, что суммирование будет производиться только для уникальных значений указанного поля - [Имя_поля].
Пример
В качестве примера рассмотрим отчет, в котором вычисляется количество врачей, посещенных каждым пациентом.
При формировании запроса "Пациенты, количество врачей" (рис. 2.4.16) выбираются основная таблица История заболевания и связанная с ней таблица Пациенты. Из таблиц выбираются поля PATIENTS_ID, MEDECINS_ID, ФИО. Создается выражение Кол-во врачей для подсчета врачей. Значение выражения = 1.
Рисунок 2.4.16. Запрос "Пациенты, количество врачей"
В настройках отчета создается группировка по пациенту (PATIENTS_ID). Добавляется подсумма по столбцу Кол-во врачей (рис. 2.4.17). Формула подсуммы представляет собой следующее выражение:
SUM([Кол-во врачей],0,MEDECINS_ID)
Парметры 0,MEDECINS_ID означают, что количество суммируется только для уникальных значений MEDECINS_ID. Таким образом, в случае когда у пациента есть несколько приемов одного врача, к значению подсуммы прибавляется 1, тогда как формула SUM([Кол-во врачей]) подсчитала бы общее количество приемов.
Рисунок 2.4.17. Отчет с формулами для подсчета врачей
Аналогичная формула может быть создана и для итоговой подсуммы: в этом случае будет подсчитано общее количество ведущих прием врачей.
Пример отчета показан на рис. 2.4.18.
Рисунок 2.4.18. Отчет "Пациенты, количество врачей"