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

Duvidas quanto ao resultado de query

Por que quando faço a seguinte query:

select year(DATA_VENDA), QUANTIDADE * PRECO as faturamento from
notas_fiscais NF inner join itens_notas_fiscais INF 
on NF.NUMERO = INF.NUMERO

obtenho só resultados do ano de 2015?

E mais, quando faço a seguinte query:

select year(DATA_VENDA), sum (QUANTIDADE * PRECO) as faturamento from
notas_fiscais NF inner join itens_notas_fiscais INF 
on NF.NUMERO = INF.NUMERO

obtenho este resultado:

year(DATA_VENDA)    faturamento
2015    137591677.4577582

Entendi que o faturamento é a soma dos (Quantidade * preco) de cada registro, de todos os anos. Mas por que a coluna year(DATA_VENDA) ficou 2015?

Desculpem pelo titulo genérico

1 resposta
solução!

Olá Pedro Paulo, tudo bem? Essa primeira query:

select year(DATA_VENDA), QUANTIDADE * PRECO as faturamento from
notas_fiscais NF inner join itens_notas_fiscais INF 
on NF.NUMERO = INF.NUMERO

Só mostra o faturamento referente ao ano de 2015 porque são muitos registros e o MySQL Workbench por padrão só exibe uma determinada quantidade de linhas, para compreender isso, você executar a mesma quey com o LIMIT bem maior da seguinte forma:

select year(DATA_VENDA), QUANTIDADE * PRECO as faturamento from
notas_fiscais NF inner join itens_notas_fiscais INF 
on NF.NUMERO = INF.NUMERO limit 1000000;

E você verá os faturamentos referentes aos anos de 2015, 2016, 2017 e 2018.

Já sobre a outra consulta o problema é que não foi colocado o GROUP BY pelo ano, então ele está realizado o SUM de todos os faturamentos e colocando somente no ano de 2015 porque ele é o primeiro, para ver os faturamentos dos outros anos, você deve acrescentar o GROUP BY da seguinte forma:

select year(DATA_VENDA), sum(QUANTIDADE * PRECO) as faturamento from
notas_fiscais NF inner join itens_notas_fiscais INF 
on NF.NUMERO = INF.NUMERO group by year(DATA_VENDA);

Então o resultado deve ser:

+------------------+--------------------+
| year(DATA_VENDA) | faturamento        |
+------------------+--------------------+
|             2015 | 39848262.062838554 |
|             2016 |  42362119.43621111 |
|             2017 | 44359013.132596016 |
|             2018 | 11022282.826112509 |
+------------------+--------------------+

Espero ter esclarecido sua dúvida!