Dúvida SQL em agregação

boa tarde galera tenho o seguinte codigo sql que esta funcionando perfeitamente ou seja me retorna a soma dos valores agrupadas por dia

exemplo 01/04/2013->100

SELECT data_vencimento, sum(valor)
FROM mov_finc   where codigo_mov_t009 isnull and data_vencimento 
BETWEEN '2013.04.01' and '2013.04.30'
group by data_vencimento  
order by data_vencimento asc;
      

porem se eu acrescentar mas um campo me gera um erro que eu não to sabendo identificar o motivo

SELECT[b] nome_movimento[/b],data_vencimento, sum(valor)
FROM mov_finc   where codigo_mov_t009 isnull and data_vencimento 
BETWEEN '2013.04.01' and '2013.04.30'
group by data_vencimento  
order by data_vencimento asc;

 column "mov_finc.nome_movimento" must appear in the GROUP BY clause or be used in an aggregate function

porque acontece esse erro ao inserir mas um campo??

O Group By funciona como o erro diz.

Se você vai buscar um campo, ou agrupa por ele, ou busca o resultado dele em uma função de agregação.

Aqui tem uma breve descrição: http://www.w3schools.com/sql/sql_groupby.asp

Porque vc precisa agrupar tambem o “nome_movimento” assim:

SELECT nome_movimento,data_vencimento, sum(valor)  
FROM mov_finc   where codigo_mov_t009 isnull and data_vencimento   
BETWEEN '2013.04.01' and '2013.04.30'  
group by data_vencimento, nome_movimento
order by data_vencimento asc;  

Ola TASF,

você precisa adicionar no group by a nova coluna, ou seja:

SELECT[b] nome_movimento[/b],data_vencimento, sum(valor)  
FROM mov_finc   where codigo_mov_t009 isnull and data_vencimento   
BETWEEN '2013.04.01' and '2013.04.30'  
group by nome_movimento,  data_vencimento
order by data_vencimento asc; 

vlw galerinha…