Ajuda com a clausula distinct, comportamento estranho

Firebird

25/10/2006

Bom dia pessoal..
Estou tendo problemas na construção de uma query que utiliza o distinct..
A instrução em sql seria basicamente essa:
select caidat, cailan, caival, sum (distinct caival)
from caixa
group by caidat, cailan, caival


Qdo executo essa query no paradox.. tenho o seguinte resultado
      Data     Lan     Valor      Saldo
   01/11/2005    87    250,00    250,00
   01/11/2005    88    200,00    450,00
   01/11/2005    89    200,00    650,00
   01/11/2005    99    -435,00   215,00
   04/11/2005    91    300,00    515,00

Agora qdo executo a mesma qry em uma base Firebird tenho o seguinte resultado:
 
      Data      Lan     Valor      Saldo
   01/11/2005    87    250,00    250,00
   01/11/2005    88    200,00    200,00
   01/11/2005    89    200,00    200,00
   01/11/2005    99    -435,00   435,00
   04/11/2005    91    300,00    300,00


A clausula distinct tem comportamento diferente no firebird?
Qual seria a solução para por exemplo, mostrar um extrato de um caixa ?
Grato
Fausto


Faustoalves

Faustoalves

Curtidas 0

Respostas

Acacio

Acacio

25/10/2006

Cara, para ter dado está diferença as bases não podem estar iguais, já verificasse sem o distinct se os valores batem.


GOSTEI 0
Faustoalves

Faustoalves

25/10/2006

Amigo acho que vc não entendeu..
as bases são as mesmas.. observe que em uma ele soma o saldo linha a linha e na outra não..
Fausto


GOSTEI 0
Acacio

Acacio

25/10/2006

Bom não sei se entendi direito ainda, mas vamos la. Um problema que eu vi é se tais dando um sum no campo ´caival´ e queres mostrar ele antes. Ai tens que colocar no grupo by. Bom ai cada vez que mudar este valor ele vai quebrar, ou seja se tais dando um sum é inutil colocar o valor antes, pois deste modo eles sempre serão iguais. Outro problema é o distinct aonde está. O distinc vai funcionar para o select todo e não somente para aquele campo.
Simulei aqui numa base e os valores batem corretamente.


GOSTEI 0
POSTAR