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

Subconsulta ou múltiplos INNER JOINs

Olá, gostaria de entender qual o impacto em utilizar múltiplos INNER JOINs ou apenas uma subconsulta neste exercício.

Seguem meu código com subconsulta e o do instrutor, com 2 INNER JOINs.

Realizei a ordenação nos dois códigos para facilitar na conferência se o resultado havia sido o mesmo, e isso se concretizou.

Subconsulta

SELECT CONCAT('O cliente ', X.NOME, ' faturou ', CONVERT(Y.FATURAMENTO, CHAR), ' no ano de 2016.') AS RESULTADO
FROM tabela_de_clientes X INNER JOIN 
(SELECT A.CPF, ROUND(SUM(B.QUANTIDADE * B.PRECO), 2) AS FATURAMENTO
FROM notas_fiscais A INNER JOIN itens_notas_fiscais B
ON A.NUMERO = B.NUMERO
WHERE YEAR(A.DATA_VENDA) = 2016
GROUP BY A.CPF) Y
ON X.CPF = Y.CPF
ORDER BY RESULTADO;

Múltiplos INNER JOINs

SELECT CONCAT('O cliente ', TC.NOME, ' faturou ', 
CAST(SUM(INF.QUANTIDADE * INF.preco) AS char (20))
 , ' no ano ', CAST(YEAR(NF.DATA_VENDA) AS char (20))) AS SENTENCA FROM notas_fiscais NF
INNER JOIN itens_notas_fiscais INF ON NF.NUMERO = INF.NUMERO
INNER JOIN tabela_de_clientes TC ON NF.CPF = TC.CPF
WHERE YEAR(DATA_VENDA) = 2016
GROUP BY TC.NOME, YEAR(DATA_VENDA)
ORDER BY SENTENCA;
1 resposta
solução!

Boa tarde,

O impacto neste caso é apenas a performance do script. Como vc pode ver, ambos trouxeram os mesmos resultados, porém, com várias consultas a tabelas (joins), pode onerar um pouco o processamento.