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

[Dúvida] Não consigo ver a consulta, ele dá erro: 1055

SELECT NF.CPF, TC.NOME, DATE_FORMAT(NF.DATA_VENDA, '%y-%m') AS MES_ANO,
SUM(INF.QUANTIDADE) AS QUANTIDADE_VENDAS,
MAX(TC.VOLUME_DE_COMPRA) AS QUANTIDADE_LIMITE FROM notas_fiscais NF 
INNER JOIN itens_notas_fiscais INF ON NF.NUMERO = INF.NUMERO
INNER JOIN tabela_de_clientes TC ON TC.CPF = NF.CPF
GROUP BY NF.CPF, TC.NOME, DATE_FORMAT(NF.DATA_VENDA, '%y/%m');
1 resposta
solução!

Oi, Arieli! Como vai?

O erro 1055 acontece porque o MySQL tem um modo de operação chamado "only_full_group_by", o qual determina que todas as colunas contidas no SELECT também estejam presentes na cláusula GROUP BY (que realiza o processo de agregação dos registros).

Para que esse erro não apareça nesta situação ou em outras semelhantes, podemos realizar o seguinte passo a passo:

1 - Executar o script abaixo em nosso MySQL Workbench:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

De maneira geral, estamos alterando a organização do nosso ambiente global, substituindo o modo de operação only_full_group_by” (que está causando o erro) por uma string vazia, que representa "nada".

2 - Localizar, no menu de navegação, a opção “Database” e selecioná-la com o botão do mouse;

3 - Clicar em “Connect to Database” para inicializar o ambiente.

Para um melhor entendimento, observa a imagem abaixo que ilustra os passos 2 e 3:

Destaque para a opção "Connect to Database", do item "Database", do menu do MySQL Workbench

Feito isso, seu Banco de Dados será reconectado, basta você clicar no botão “Ok” para confirmar e então executar novamente o SELECT disponibilizado pelo exercício:

SELECT NF.CPF, TC.NOME, DATE_FORMAT(NF.DATA_VENDA, '%y-%m') AS MES_ANO,
SUM(INF.QUANTIDADE) AS QUANTIDADE_VENDAS,
MAX(TC.VOLUME_DE_COMPRA) AS QUANTIDADE_LIMITE FROM notas_fiscais NF 
INNER JOIN itens_notas_fiscais INF ON NF.NUMERO = INF.NUMERO
INNER JOIN tabela_de_clientes TC ON TC.CPF = NF.CPF
GROUP BY NF.CPF, TC.NOME, DATE_FORMAT(NF.DATA_VENDA, '%y/%m');

Por meio dessas etapas, fazemos com que o modo "only_full_group_by" não seja mais levado em consideração pelo MySQL. Logo, o erro 1055 não aparecerá mais em nosso programa.

Arieli, espero ter ajudado! Caso o problema persista ou surjam outras dúvidas, fico à disposição.

Abraços.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.