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

Duvida resolução sem sub-consultas

Olá Pessoal, tudo bem? Eu tentei resolver o exercício de outra forma, sem sub-consultas, todos os valores estão batendo, mas quando tento inserir o 'case' não tenho sucesso, alguém sabe como deveria ser a inserção de acordo com a minha resolução?

** funcionando e faltando apenas o case ***

SELECT NF.CPF, CADASTRO.NOME, TO_CHAR(NF.DATA_VENDA,'MM-YYYY') AS MES_ANO, CADASTRO.volume_de_compra ,SUM(INF.QUANTIDADE ) AS  QTD_VENDAS
FROM notas_fiscais NF
INNER JOIN itens_notas_fiscais INF ON NF.NUMERO = INF.NUMERO
INNER JOIN tabela_de_clientes CADASTRO ON NF.CPF = CADASTRO.CPF
WHERE TO_CHAR(NF.DATA_VENDA,'MM-YYYY') = '01-2018'
GROUP BY NF.CPF, TO_CHAR(NF.DATA_VENDA,'MM-YYYY'),CADASTRO.NOME, CADASTRO.volume_de_compra;

* Onde eu poderia inserir a linha abaixo? todos os locais que tentei deram erro *

CASE WHEN CADASTRO.VOLUME_DE_COMPRA <= QTD_VENDAS THEN 'Vendas Válidas' ELSE 'Vendas Inválidas' END AS RESULTADO

2 respostas
solução!

Olá, Marcel, tudo bem?

Tente adicionar o CASE informando o campo Quantidade dentro da função de agregação SUM, ao invés de apenas o alias QTD_VENDAS, dessa forma:

SELECT NF.CPF, CADASTRO.NOME, TO_CHAR(NF.DATA_VENDA,'MM-YYYY') AS MES_ANO, 
CADASTRO.volume_de_compra ,SUM(INF.QUANTIDADE ) AS  QTD_VENDAS,
CASE WHEN CADASTRO.VOLUME_DE_COMPRA <= SUM(INF.QUANTIDADE ) THEN 'Vendas Válidas' ELSE 'Vendas Inválidas' END AS RESULTADO
FROM notas_fiscais NF
INNER JOIN itens_notas_fiscais INF ON NF.NUMERO = INF.NUMERO
INNER JOIN tabela_de_clientes CADASTRO ON NF.CPF = CADASTRO.CPF
WHERE TO_CHAR(NF.DATA_VENDA,'MM-YYYY') = '01-2018'
GROUP BY NF.CPF, TO_CHAR(NF.DATA_VENDA,'MM-YYYY'),CADASTRO.NOME, CADASTRO.volume_de_compra;

Espero ter ajudado e bons estudos!

Funcionou!! Obrigado @Danielle Oliveira

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