Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

query utilizando Case when

Boa tarde people, alguém consegue me ajudar com essa query por favor? estou tendo dificuldades na hora de organizar esse 'Case when' creio eu

CREDITO | CONTA | TIPO
100         8    ENTRADA
30          9    ENTRADA
30         10    ENTRADA
1           8    SAIDA
10         11    ENTRADA
1           8    SAIDA
1          11    SAIDA
10         12    ENTRADA
15         12    ENTRADA
15         13    ENTRADA

olha onde quero chegar, é a primeira vez que tento uma query mais diferente, digamos assim.

select c, sum(pos), sum(negat) from(
select conta as c,
Case when (tipo = 'ENTRADA') then sum(credito) end pos,
Case when (tipo = 'SAIDA') then sum(credito) end negat
from credito
) A group by c;

eu preciso pegar todas as contas num distinct e na mesma linha ter a lista

Conta | TotalCreditosEntrada | TotalCreditosSaida
2 respostas
solução!

Olá Rodrigo,

você consegue fazer isso em apenas 1 query, não precisa de subquery. Mas para os sum abaixo darem certo, nesta query você precisa fazer o group by pela conta.

Ai você pode fazer o case dentro do sum. Quando você quiser o TotalCreditosEntrada, caso o tipo seja ENTRADA você pega o credito, se não você pega 0. Seria algo assim no select:

sum( case when tipo = 'ENTRADA' then credito else 0 end)  as TotalCreditosEntrada

E a mesma coisa para o TotalCreditosSaida.

show! vlw.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software