как объединить эти два запроса в один запрос - PullRequest
0 голосов
/ 12 июня 2018

Как объединить эти два запроса в один запрос

1. select sum(amount) as received from voucher where amount>0

2. select sum(amount) as repaid from voucher where amount<0

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Попробуйте это.,

select case when amount>0 then sum(amount) end as 'received', 
case when amount<0 then sum(amount) end as 'repaid' from voucher
0 голосов
/ 12 июня 2018

Вы можете использовать условное агрегирование

select sum( case when amount > 0 then amount else 0 end ) as received,
       sum( case when amount < 0 then amount else 0 end ) as repaid 
FROM t

Вы можете использовать FILTER в Postgres 9,4 +

select sum( amount ) filter (where  amount > 0 ) as received,
       sum( amount ) filter (where  amount < 0 ) as repaid 
FROM t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...