› Fóruns › SQL e PL/SQL › Decode – Selecionar Campo a preencher › Decode – Selecionar Campo a preencher
Olá,
Algo assim atenderia:
————————————————————————————————————————————————————————
SQL> create table clanca (data date,
2 credito number(10),
3 debito number(10),
4 valor number(15, 2));
Table created
SQL> begin
2 insert into clanca values (to_date('05/01/2010', 'DD/MM/YYYY'), 1001, null, 50);
3 insert into clanca values (to_date('07/01/2010', 'DD/MM/YYYY'), 1002, null, 120);
4 insert into clanca values (to_date('12/01/2010', 'DD/MM/YYYY'), 1003, null, 80);
5 insert into clanca values (to_date('04/01/2010', 'DD/MM/YYYY'), null, 2001, 10);
6 insert into clanca values (to_date('06/01/2010', 'DD/MM/YYYY'), null, 2002, 20);
7 insert into clanca values (to_date('20/01/2010', 'DD/MM/YYYY'), null, 2003, 30);
8 commit;
9 end;
10 /
PL/SQL procedure successfully completed
SQL> select sum(decode(to_char(l.data, 'mm'),
2 '01',
3 l.valor * case when credito is not null then 1
4 when debito is not null then -1 end
5 )) janeiro
6 from clanca l;
JANEIRO
----------
190
SQL>
É só replicar para os outros meses agora.
Só não há necessidade de postar a mesma pergunta em dois novos tópicos.