• Начало
  • Поиск
    •  

Автор Тема: Расчет итогов только для уже полученных группировок  (Прочитано 1164 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн WKBAPKA

  • Администратор
  • Новичок
  • *****
  • Сообщений: 24
  • Карма: +0/-0
  • Пол: Мужской
    • Внедренческий центр "КУБиК"
Для того, чтобы значение некоторых суммируемых полей рассчитывалось только для группировок, по которым уже получены итоги, в выражении для расчета итога можно воспользоваться тем фактом, что значение полей - группировок для еще не полученных группировок равняется NULL.

ВЫБРАТЬ
    ОсновнойОстатки.Счет КАК Счет,
    ОсновнойОстатки.Валюта КАК Валюта,
    ОсновнойОстатки.СуммаОстаток КАК СуммаОстаток,
    ОсновнойОстатки.ВалютнаяСуммаОстаток КАК ВалютнаяСуммаОстаток
ИЗ
    РегистрБухгалтерии.Основной.Остатки КАК ОсновнойОстатки
ИТОГИ
    СУММА(СуммаОстаток),
    ВЫБОР
        КОГДА Валюта ЕСТЬ НЕ NULL
            ТОГДА СУММА(ВалютнаяСуммаОстаток)
    КОНЕЦ КАК ВалютнаяСуммаОстаток
ПО
    Счет,
    Валюта

В данном примере значение итога для поля "ВалютнаяСуммаОстаток" будет рассчитано только для итоговых записей, в которых уже получена группировка Валюта. Т.е. в итоговых записях для группировки Счет итоги по полю "ВалютнаяСуммаОстаток" будут рассчитывать только тогда, когда итоги по данной группировке будут получаться только внутри группировки Валюта.

Альтернативным способом расчета итога является проверка количества различных значений в группировке и рассчет итога только для итоговых записей, в которых суммируется только одно значение группировки.

Пример:
ЫБРАТЬ
    ОсновнойОстатки.Счет КАК Счет,
    ОсновнойОстатки.Валюта КАК Валюта,
    ОсновнойОстатки.СуммаОстаток КАК СуммаОстаток,
    ОсновнойОстатки.ВалютнаяСуммаОстаток КАК ВалютнаяСуммаОстаток
ИЗ
    РегистрБухгалтерии.Основной.Остатки КАК ОсновнойОстатки
ИТОГИ
    СУММА(СуммаОстаток),
    ВЫБОР
        КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Валюта) = 1
            ТОГДА СУММА(ВалютнаяСуммаОстаток)
    КОНЕЦ КАК ВалютнаяСуммаОстаток
ПО
    Счет,
    Валюта

В данном примере рассчет итого по полю "ВалютнаяСуммаОстаток" будет производиться только для тех итоговых записей, которые содержат лишь одно значение поля "Валюта".

Источник