5
respostas

como selecionar recebido por ano

como na aula passada foi feito select para extrair o ano da data e somar todos os valores para descobrir a soma por ano.

select extract(year from data) as ano, sum(valor) as soma from compras group by extract (year from data) order by ano;

a dúvida é, como ficaria se fosse para selecionar RECEBIDO por ANO? ou MÊS?

5 respostas

Oi Rafael, tudo bom?

Não sou nenhum especialista em oracle. Mas, tenta algo como:

// ano
select extract(year from data) as ano, recebido from compras group by extract (year from data) order by ano;

//mes
select extract(month from data) as mes, recebido from compras group by extract (month from data) order by mes;

Me avisa se não rolar =)

tentei tambem mas nao deu certo

Opa Rafael beleza ?

O select que André Chaves passou acima não funcionou porque, devemos agrupar tanto por recebido quanto pelo mês ou ano, para isso basta passar as duas colunas

Segue abaixo selects de exemplo:

// ano
 select recebido, extract(year from data) as ano from compras group by recebido, extract (year from data) order by ano; 

//mes
select recebido, extract(month from data) as mes from compras group by recebido, extract (month from data) order by mes;

Acredito que seja esta a sua duvida

isso, mas gostaria de saber a quantidade por ano. por ex: recebido em 2016 foi 34 nao recebido em 2016 foi 4

Opa Rafael, acredito que me equivoquei na resposta anterior, não havia compreendido sua pergunta, acredito que a resposta que procura seja esta:

//ano
 select count(1) as qtd, extract(year from data) as ano from compras where recebido = '1' group by  extract (year from data) order by ano; 

//mês
 select count(1) as qtd, extract(month from data) as mes from compras where recebido = '1' group by  extract (month from data) order by mes;