Vazio e null no group by
10/10/2005
0
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!!!
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!!!
Brahma
Curtir tópico
+ 0
Responder
Posts
10/10/2005
Gandalf.nho
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.
Responder
10/10/2005
Brahma
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
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
Responder
Clique aqui para fazer login e interagir na Comunidade :)