3
respostas

Erro INNER JOIN

Estou tentando buscar quantas notas fiscais cada vendedor emitiu, entretanto, ao utilizar o código abaixo, o Workbench me retorna apenas as notas fiscais emitidas pelo vendedor "Márcio Almeida Silva". Quando eu utilizo o GROUP BY no código, ele me retorna corretamente os valores para todos os vendedores, assim como na aula. A minha dúvida é sobre qual o motivo do código abaixo retornar os resultados de apenas um vendedor.

SELECT A.MATRICULA, A.NOME, COUNT(*) FROM TABELA_DE_VENDEDORES A
INNER JOIN NOTAS_FISCAIS B ON A.MATRICULA = B.MATRICULA;
3 respostas

Oii Luiz, tudo bem?

Eu acredito que você me enviou um código errado. Ali tem um COUNT, que é uma função de agregação, então precisamos do GROUP BY para agrupar os dados.

Então se rodarmos esse código sem o GROUP BY, vai retornar um erro.

Poderia revisar se mandou o código certo para que possamos te ajudar? Fico no aguardo :)

Oi Maria. Fui conferir no meu workbench e o código é exatamente esse que eu postei anteriormente. Ele me retorna 3 colunas: MATRICULA (00235), NOME (Márcio Almeida Silva) e COUNT* (87877). Aparentemente a função COUNT(*) foi entendida como o nome de uma coluna da tabela "notas_fiscais" e me retornou o número total de notas emitidas.

Oi Luiz,

Testei a query novamente e o que acontece é o seguinte:

Como você não colocou o GROUP BY para agrupar ali no fim, o resultado é a quantidade total de notas e o vendedor que possui mais notas fiscais. Quando colocado o GROUP BY, ele traz cada vendedor por linha e a quantidade de notas de cada vendedor.

Espero ter ajudado. Qualquer dúvida é só me falar, tá bom? :)