2017-01-02 3 views
1

У меня есть таблицаРазница между рядами с тем же значением

create table fct_bonus (
    date timestamp not null, 
    type varchar(10) not null, 
    amount numeric(19,2) not null, 
    userid varchar(30) not null 
) 

типа могут быть в или, сумма всегда> 0

мне нужно найти суммы входов и выходов для идентификатора пользователя 123 на дата 2016-08-01 ', а также бананы, которые должны быть считаны как все входы за вычетом всех userid123. Я использую запрос

select distinct userid, type, sum(amount) 
from fct_bonus 
where userid = 123 and date <= '2016-08-01' 
group by type 

, но я не знаю, как считать Balans. Пожалуйста помоги.

+1

Редактировать ваш вопрос и (1) предоставлять данные выборки; (2) желаемые результаты; и (3) тег с базой данных, которую вы используете. –

ответ

3

Это, казалось бы делать то, что вы описываете:

select userid, 
     sum(case when type = 'IN' then 1 else 0 end) as ins, 
     sum(case when type = 'OUT' then 1 else 0 end) as outs, 
     sum(case when type = 'IN' then amount when type = 'OUT' then - amount end) as balance 
from fct_bonus 
where userid = 123 and date <= '2016-08-01' 
group by userid; 
+0

Большое спасибо, это помогает! –

Смежные вопросы