1
resposta

Homônimos

A solução proposta pela instrutor não contempla situações onde as pessoas tem exatamente o mesmo nome, acredito que o CPF deve ser adicionado no GROUP BY afim de resolver esse problema:

Scripts para gerar a situação de homônimos:

INSERT INTO TABELA_DE_CLIENTES (CPF, NOME, ENDERECO_1, ENDERECO_2, BAIRRO, CIDADE, ESTADO, CEP, DATA_DE_NASCIMENTO, IDADE, SEXO, LIMITE_DE_CREDITO, VOLUME_DE_COMPRA, PRIMEIRA_COMPRA) 
VALUES ('58684211485', 'Abel Silva ', 'Rua Humaita', '', 'Humaita', 'Rio de Janeiro', 'RJ', '22000212', TO_DATE('1995-09-11','YYYY-MM-DD'), 22, 'M', 170000.0000, 26000, 0);

INSERT INTO NOTAS_FISCAIS (CPF, MATRICULA, DATA_VENDA, NUMERO, IMPOSTO) 
VALUES ('58684211485','00238', TO_DATE('2016-05-17','YYYY-MM-DD'),88060,0.19);

INSERT INTO ITENS_NOTAS_FISCAIS (NUMERO, CODIGO_DO_PRODUTO, QUANTIDADE, PRECO) 
VALUES (88060, '773912', 50, 9.44944);

Solução proposta:

SELECT 
    'O cliente ' || C.NOME || ' faturou ' || 
    TO_CHAR(ROUND(SUM(B.QUANTIDADE * B.preco),2)) || ' no ano ' || 
    TO_CHAR(DATA_VENDA, 'YYYY') AS RESULTADO 
FROM NOTAS_FISCAIS A
INNER JOIN ITENS_NOTAS_FISCAIS B ON A.NUMERO = B.NUMERO
INNER JOIN TABELA_DE_CLIENTES C ON A.CPF = C.CPF
WHERE TO_CHAR(DATA_VENDA, 'YYYY') = '2016'
GROUP BY C.CPF, C.NOME, TO_CHAR(DATA_VENDA, 'YYYY')
ORDER BY C.NOME;

Obrigado!

1 resposta

Olá André, tudo bem?

Realmente em um cenário real a query proposta pela instrutor não contemplaria casos em que clientes tenham o mesmo nome, então André, você poderia sugerir a alteração diretamente na atividade, assim, a sua sugestão será analisada diretamente pelo pessoal responsável. Você pode sugerir alteração da seguinte forma, clica nos três pontinhos no canto superior da tela e depois em sugerir alteração:

Sugerir alterações na atividade

Agradecemos pelo seu feedback, continue assim e bons estudos!