Group By
Oi,
Não consigo executar o comando GROUP BY no select (tão simples), pois ele retorna um erro ... e não sei o que pode estar errado:
SELECT COD, VALOR FROM <TABELA>
GROUP BY VALOR
>> Ele retorna o seguinte erro: Invalid Column Reference
Mas se dou o comando:
SELECT COD, VALOR FROM <TABELA>
ORDER BY VALOR
>> Executa SEM erro!!!
O que pode ser??
Obrigada.
Não consigo executar o comando GROUP BY no select (tão simples), pois ele retorna um erro ... e não sei o que pode estar errado:
SELECT COD, VALOR FROM <TABELA>
GROUP BY VALOR
>> Ele retorna o seguinte erro: Invalid Column Reference
Mas se dou o comando:
SELECT COD, VALOR FROM <TABELA>
ORDER BY VALOR
>> Executa SEM erro!!!
O que pode ser??
Obrigada.
Fatima
Curtidas 0
Respostas
Anorex
18/04/2005
Olá Fátima...
é porque na primeira vc esta dando um Group By numa coluna que não está no select.
Para o Group By funcionar esta coluna tem que ser retornada no sql...
é porque na primeira vc esta dando um Group By numa coluna que não está no select.
Para o Group By funcionar esta coluna tem que ser retornada no sql...
GOSTEI 0
Emerson Nascimento
18/04/2005
só ilustrando o que o anorex disse, o uso mais comum do group é:
SELECT COD, SUM(VALOR) FROM <TABELA>
GROUP BY COD
SELECT COD, SUM(VALOR) FROM <TABELA>
GROUP BY COD
GOSTEI 0
Fatima
18/04/2005
... Mas no código eu mando retornar o campo pelo qual eu mando agrupar!!
SELECT COD, VALOR FROM <TABELA>
GROUP BY VALOR
>> ??
SELECT COD, VALOR FROM <TABELA>
GROUP BY VALOR
>> ??
GOSTEI 0
Emerson Nascimento
18/04/2005
no sua instrução você tem dois campos: COD e VALOR. quando há uma solicitação explícita de campos, esse campos OBRIGATORIAMENTE devem estar na cláusula [i:0b2614a677]group by[/i:0b2614a677], se houver uma.
No seu caso:
SELECT COD, VALOR FROM <TABELA>
GROUP BY VALOR
Deveria ser alterado para:
SELECT COD, VALOR FROM <TABELA>
GROUP BY COD, VALOR
mas isso não faz nenhum sentido.
O uso mais comum seria:
SELECT COD, SUM(VALOR) FROM <TABELA>
GROUP BY COD
pois assim seriam exibidas as somas do valores de cada código.
imagine que na sua tabela haja os seguintes registros:
após o comando
SELECT COD, SUM(VALOR) FROM <TABELA>
GROUP BY COD
o retorno seria:
No seu caso:
SELECT COD, VALOR FROM <TABELA>
GROUP BY VALOR
Deveria ser alterado para:
SELECT COD, VALOR FROM <TABELA>
GROUP BY COD, VALOR
mas isso não faz nenhum sentido.
O uso mais comum seria:
SELECT COD, SUM(VALOR) FROM <TABELA>
GROUP BY COD
pois assim seriam exibidas as somas do valores de cada código.
imagine que na sua tabela haja os seguintes registros:
COD VALOR 1 150,00 2 80,00 2 15,55 1 30,45 3 28,74 2 12,44
após o comando
SELECT COD, SUM(VALOR) FROM <TABELA>
GROUP BY COD
o retorno seria:
COD VALOR 1 180,45 2 107,99 3 28,74
GOSTEI 0