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

[Dúvida] não entendi muito bem , pois cadastro não achei nas tabelas que estudamos no decorrer do curso.

SELECT CADASTRO.CPF, CADASTRO.NOME, VENDAS.MES_ANO, CADASTRO.VOLUME_DE_COMPRA,
VENDAS.VOLUME_VENDIDO AS VOLUME_LIMITE,
CASE WHEN CADASTRO.VOLUME_DE_COMPRA <= VENDAS.VOLUME_VENDIDO THEN 'Vendas Válidas'
ELSE 'Vendas Inválidas' END AS RESULTADO
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 NF.NUMERO = INF.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 VENDAS.CPF = CADASTRO.CPF
WHERE VENDAS.MES_ANO = '2018-01';
2 respostas
solução!

Olá Thiago, tudo bem?

Você não especificou a que curso corresponde essa atividade. Para facilitar o entendimento e a ajuda em seus próximos tópicos, recomendo utilizar o botão "Discutir no Fórum", disponível dentro da própria atividade. Assim, seu tópico ficará automaticamente vinculado à atividade, o que ajuda na análise da questão.

De toda forma, nessa consulta, "CADASTRO" é apenas um alias que foi dado à subconsulta que está selecionando dados da tabela TABELA_DE_CLIENTES.

A subconsulta:

(
    SELECT CPF, NOME, VOLUME_DE_COMPRA FROM TABELA_DE_CLIENTES
) CADASTRO

está criando um conjunto de dados que inclui o CPF, nome e volume de compra dos clientes. Esse conjunto de dados é então referenciado como "CADASTRO" na consulta principal. Portanto, "CADASTRO" não é uma tabela física no banco de dados, mas sim um nome temporário dado à subconsulta para facilitar a leitura e a organização do código.

Espero que isso esclareça sua dúvida!

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Muito obrigado pela resposta Monalisa, entendi perfeitamente