Array
(
)

Vazio e null no group by

Brahma
   - 10 out 2005

select cep, sum(ve_vendas.vlrtotal) as soma,
from in_usuario, ve_vendas
where in_usuario.cartao=ve_vendas.carteirinha and
(ve_vendas.dtpedido >= :pdataInicial2 and ve_vendas.dtpedido <=:pdataFinal2 ) and ve_vendas.fechou=´F´
group by in_usuario.cep
having sum(ve_vendas.vlrtotal) >= 0
order by soma desc

Executando essa sql no query analyzer... entre os varios grupos retornados, existe um grupo de cep vazio e um null...
Mas quando executo no delphi um datagrid me retorna dois grupos vazio... so que em registro separados... o group by nao junta os dois! Acredito que seja porque um dos grupo possui valor null e o outro branco e o banco de dados enterpreta essa informações de forma diferente...

Como posso resolver este problema...
Pensei em atribuir ´´ vazios para todos campos cep que tiverem null ... mas acredito que existem soluções melhores para este problema...
mas como trabalho como o SQL SEVER fazem 2 semanas... esto com dificuldades de encontra-la!!!
Agradeço qualquer ajuda!!!

Gandalf.nho
   - 10 out 2005

Não uso SQL Server, mas se não me engano, ele possui as funções COALESCE e/ou CASE, que vc poderia usar para resolver esse problema.

Brahma
   - 10 out 2005

A funcao he a seguinte isnull(cep,´´)
onde tinha cep, troquei pela expresao acima...

select isnull(cep,´´) as cep, sum(ve_vendas.vlrtotal) as soma
from in_usuario, ve_vendas
where in_usuario.cartao=ve_vendas.carteirinha and
(ve_vendas.dtpedido between :pdataInicial2 and :pdataFinal2) and ve_vendas.fechou=´F´
group by isnull(cep,´´)
having sum(ve_vendas.vlrtotal) >= 0
order by soma desc