Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida Sobre Order By


Andersonjb

Pergunta

Pessoal, olhem esse comando:

SELECT SUM(Tabela481.Valor), Tabela481.Codigo, Tabela481.Indicador, Tabela495.Descricao, Tabela481.Valor
FROM Tabela481, Tabela495 GROUP BY Tabela481.Codigo;

Agora, olhem o erro:

Você tentou executar uma consulta que não inclui a expressão 'Indicador' especificada como parte de uma função agregada.

Me desculpem a ignorância, mais aonde eu errei???

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Não sei se é daí que vem o erro mas (acho que em MySql também é assim) tens de pôr todos so campos de select que não contêm agregate functions dentro do group by.

Assim:

SELECT 
   SUM(Tabela481.Valor), 
   Tabela481.Codigo, 
   Tabela481.Indicador, 
   Tabela495.Descricao, 
   Tabela481.Valor
FROM 
   Tabela481, 
   Tabela495 
GROUP BY 
   Tabela481.Codigo;
   Tabela481.Codigo, 
   Tabela481.Indicador, 
   Tabela495.Descricao, 
   Tabela481.Valor

Só depois de ter olhado bem para o código é que vi isto mas ....

1 - Qual a correlação entre a tabela481 e a tabela495?

Portanto falta-te um

WHERE Tabela495.???? = Tabela481.?????

2 - Vê a 1ª e ultima linha do select ....

Select

sum (TABELA481.VALOR)

.....

TABELA481.VALOR

...

Não pode ser. Ou queres o somatório dos valores, ou queres o valor.

Não podes ter os dois.

Link para o comentário
Compartilhar em outros sites

  • 0

E ai J Pedro, beleza? Vamos lá:

1 - Qual a correlação entre a tabela481 e a tabela495?

Portanto falta-te um

WHERE Tabela495.???? = Tabela481.?????

Não tem correlação entre as tabelas, porque eu simplesmente quero pegar um campo da outra tabela, e não relacioná-las.

2 - Vê a 1ª e ultima linha do select ....

Select

sum (TABELA481.VALOR)

.....

TABELA481.VALOR

...

Não pode ser. Ou queres o somatório dos valores, ou queres o valor.

Não podes ter os dois.

Mais eu não coloquei ela, quem colocou foi você.

Depois dos seus conselhos, a consulta ficou assim:

SELECT 
   SUM(Tabela481.Valor), 
   Tabela481.Codigo, 
   Tabela481.Indicador, 
   Tabela495.Descricao
FROM 
   Tabela481, 
   Tabela495 
GROUP BY 
   Tabela481.Codigo, 
   Tabela481.Indicador, 
   Tabela495.Descricao;

Mas mesmo assim, a consulta roda, roda, roda, e simplesmente não para de rodar, não trava, mais o processamento tambem não trava.

Alguma opnião???

Link para o comentário
Compartilhar em outros sites

  • 0

Beleza! :)

Mais eu não coloquei ela, quem colocou foi você.
Apenas fiz copy - Paste do teu post e ajeitei as coisas de modo a se ver melhor. Se vires bem, está lá.

Agora, respondendo ao teu problema:

Não tem correlação entre as tabelas, porque eu simplesmente quero pegar um campo da outra tabela, e não relacioná-las.
...
Mas mesmo assim, a consulta roda, roda, roda, e simplesmente não para de rodar, não trava, mais o processamento tambem não trava.
O teu problema é que, como não há relações entre as duas tabelas, por cada linha da 1ª tabela, vais gerar 1 linha com a segunda tabela, ou seja, vou tentar explicar melhor:

Se na tabela481 tiveres, por exemplo :

Codigo Indicador Valor

1 Id_1 100.00

2 Id_2 200.00

E na tabela495 tiveres

Codigo Descricao

1 descricao_1

2 descricao_2

Com o script que disses-te, vais obter o seguinte:

SUM(Tabela481.Valor) Tabela481.Codigo, Tabela481.Indicador, Tabela495.Descricao

100 1 Id_1 descricao_1

100 1 Id_1 descricao_2

200 2 Id_2 descricao_1

200 2 Id_2 descricao_2

No post, se calhar não dá para ver bem, mas vais ter des certeza muitas linha na tabela. Daí dizeres que roda, roda. Deves ter muitos campos em cada tabela. Ou pelo menos em uma delas.

Se tiveres dúvidas ácerca disto, mete em cada tabela apenas 2 ou 3 linhas. Logo vês o resultado.

Tens de ter relações entre elas!

Abraço.

JPedro.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...