Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se
Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resposta correta?

Fiquei em dúvida nessa, meu resultado está diferente da resposta

SELECT CADASTRO.CPF, CADASTRO.NOME, VENDAS.MES_ANO, CADASTRO.VOLUME_DE_COMPRA,
VENDAS.VOLUME_VENDIDO, 
CASE 
    WHEN VENDAS.VOLUME_VENDIDO > CADASTRO.VOLUME_DE_COMPRA THEN 'Vendas inválidas'
    ELSE 'Vendas válidas'
END AS RESULTADO,
(1 - (CADASTRO.VOLUME_DE_COMPRA/VENDAS.VOLUME_VENDIDO )) * 100 AS PERCENTUAL
FROM
(SELECT NF.CPF, TO_CHAR(NF.DATA_VENDA,'YYYY-MM') AS MES_ANO, 
SUM(INF.QUANTIDADE) AS VOLUME_VENDIDO FROM NOTAS_FISCAIS NF 
INNER JOIN ITENS_NOTAS_FISCAIS INF ON INF.NUMERO = NF.NUMERO
GROUP BY NF.CPF,TO_CHAR(NF.DATA_VENDA,'YYYY-MM')) VENDAS
INNER JOIN 
(SELECT CPF, NOME, VOLUME_DE_COMPRA FROM TABELA_DE_CLIENTES) CADASTRO
ON CADASTRO.CPF = VENDAS.CPF
WHERE (CADASTRO.VOLUME_DE_COMPRA - VENDAS.VOLUME_VENDIDO < 0);

Fui seguindo o que fiz junto com professor, e depois acrescentei as novas especificações. está correto?

2 respostas
solução!

Olá, Gabriel, tudo bem?

O resultado apenas foi apresentado em uma ordem diferente do apresentado no resultado do instrutor, porém, a sua query funcionou direitinho.

Foi muito legal você ter compartilhado a sua resposta da atividade aqui com a gente, você está indo muito bem :).

Continue assim e bons estudos!

Olá Gabriel e Daniele

Minha consulta também ficou diferente daquela apresentada pelo professor. Discordo um pouco do cálculo do percentual que ela faz, mas isso tem mais a ver com a cultura da empresa que ele segue e que eu sigo. Fiz também algumas formatações que deixaram minha apresentação mais fácil de compreender. Segue abaixo...

SELECT VENDAS.CPF, CADASTRO.NOME, VENDAS.MES_ANO, 
cadastro.volume_de_compra, VENDAS.VOLUME_VENDIDO,
TO_CHAR(ROUND(((vendas.volume_vendido / cadastro.volume_de_compra - 1) *100),2), '999.00') || '%' as PERC_EXCEDIDO,
CASE WHEN CADASTRO.VOLUME_DE_COMPRA < VENDAS.VOLUME_VENDIDO
THEN 'Limite excedido' 
ELSE 'Dentro do limite' 
End AS STATUS
FROM (SELECT NF.CPF, to_char(nf.data_venda, 'yyyy-mm') as MES_ANO, SUM(INF.QUANTIDADE) AS VOLUME_VENDIDO
    FROM itens_notas_fiscais INF
    INNER JOIN notas_fiscais NF
    ON INF.NUMERO = NF.NUMERO
    GROUP BY NF.CPF, to_char(nf.data_venda, 'yyyy-mm')) VENDAS
INNER JOIN tabela_de_clientes CADASTRO
ON VENDAS.CPF = CADASTRO.CPF
WHERE VENDAS.MES_ANO = '2018-02' 
AND CADASTRO.VOLUME_DE_COMPRA < VENDAS.VOLUME_VENDIDO;

Como disse a Danielle, são maneiras diferentes de chegar ao mesmo resultado.

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