Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Minha Solução] - Desafio Exercício Listando Expressão Natural

Queremos construir um SQL cujo resultado seja, para cada cliente:

O cliente NOME DO CLIENTE comprou QUANTIDADE no ano de ANO Faça isso somente para o ano de 2016.

--clientes:

SELECT 
    'O cliente ' || UPPER(TDC.nome) || ' comprou R$ ' || 
    TO_CHAR(ROUND(SUM(INF.quantidade * INF.preco),2)) || 
    ' no ano de ' || TO_CHAR(NF.data_venda,'YYYY') AS INFORMACAO
FROM notas_fiscais NF
INNER JOIN itens_notas_fiscais INF
ON nf.numero = inf.numero
INNER JOIN tabela_de_clientes TDC
ON NF.cpf = TDC.cpf
INNER JOIN tabela_de_vendedores TDV
ON NF.matricula = TDV.matricula
WHERE TO_CHAR(NF.data_venda, 'YYYY') = '2016'
GROUP BY TDC.nome, TO_CHAR(NF.data_venda,'YYYY');

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

--Vendedores:

SELECT
    'O vendedor(a) ' || UPPER(TDV.nome) || ' ganhou comissão R$ ' || 
    TO_CHAR(ROUND(SUM(TDV.percentual_comissao * (INF.quantidade * INF.preco)),2)) || 
    ' no ano de ' || TO_CHAR(NF.data_venda,'YYYY') COMISSAO_VENDAS
FROM tabela_de_vendedores TDV
INNER JOIN  notas_fiscais NF
ON TDV.matricula = NF.matricula
INNER JOIN  itens_notas_fiscais INF
ON NF.numero = INF.numero
WHERE TO_CHAR(NF.data_venda,'YYYY') = 2016
GROUP BY TDV.nome, TO_CHAR(NF.data_venda,'YYYY');

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

--Vendedor sem Vendas no ano de 2016:

SELECT
    TDV.nome AS NOME_VENDEDOR,
    INF.quantidade AS QUANTIDADE_VENDAS
FROM tabela_de_vendedores TDV
INNER JOIN  notas_fiscais NF
ON TDV.matricula = NF.matricula
INNER JOIN  itens_notas_fiscais INF
ON NF.numero = INF.numero
WHERE TDV.matricula = '00238'
AND TO_CHAR(NF.data_venda,'YYYY') = 2016;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Oii, Carlos!

Você está se saindo muito bem, estou adorando acompanhar sua evolução!

Conte sempre com a Alura para se desenvolver.

Bons estudos, Carlos!