Сумма значений в запросе

select sum(SUMM_PRIH) 
from DOC_PR 
WHERE DATA_PRIH between '01.01.2020 00:00:00' and '01.02.2020 23:59:59' 
  and kod in ('020047', '020045')

UNION ALL

select sum(SUMM_OPL) 
from DOC_RA 
WHERE DATA_RASH between '01.01.2020 00:00:00' and '01.02.2020 23:59:59' 
  and kod in ('020112', '020116')

Получаю 2 значения,как можно посчитать сумму этих значений сразу в запросе ?


Ответы (1 шт):

Автор решения: Akina

Теоретически так:

SELECT ( select sum(SUMM_PRIH) 
         from DOC_PR 
         WHERE DATA_PRIH between '01.01.2020 00:00:00' and '01.02.2020 23:59:59' 
           and kod in ('020047', '020045')
        )
       +
       ( select sum(SUMM_OPL) 
         from DOC_RA 
         WHERE DATA_RASH between '01.01.2020 00:00:00' and '01.02.2020 23:59:59' 
           and kod in ('020112', '020116')
        ) total
FROM rdb$database

Только съест ли это Interbase... если нет, то пробуй

SELECT SUM(summ) total
FROM ( select sum(SUMM_PRIH) summ
       from DOC_PR 
       WHERE DATA_PRIH between '01.01.2020 00:00:00' and '01.02.2020 23:59:59' 
         and kod in ('020047', '020045')
     UNION ALL
       select sum(SUMM_OPL) 
       from DOC_RA 
       WHERE DATA_RASH between '01.01.2020 00:00:00' and '01.02.2020 23:59:59' 
         and kod in ('020112', '020116')
     ) total
→ Ссылка