Sum, Group by e Campo Null

Delphi

26/10/2003

Na Select abaixo se um registro do grupo estiver com um campo null o grupo nao e considerado.
Ex. Tenho varios grupos. Em um deles apenas um registro tem a data null
e o grupo todo nao e considerado. O que fazer para apenas este registro nao entrar?

Procedure .....
wIni := dtInicio.DateTime;
wFim := dtFim.DateTime;
With dmBDados.quGResPgCons do
Begin
Close;
SQL.Clear;
SQL.ADD(´SELECT SSSPCODCONS, SUM(SSSPVALSERV - SSSPIRF- SSSPISS)´);
SQL.ADD(´FROM SSSERVPREST´);
SQL.ADD(´GROUP BY SSSPCODCONS´);
SQL.ADD(´ HAVING SSSPDATAPAGTO BETWEEN :wDatIni and :wDatFim´);
ParamByName(´wDatIni´).value := wIni;
ParamByName(´wDatFim´).value := wFim;
Prepare;
Open;
frmGResPgCons := TFrmGResPgCons.Create(application);
try
frmGResPgCons.ShowModal;
finally
frmGResPgCons.Release;
frmGResPgCons := nil;
end;
end;
end;


Agonzaga

Agonzaga

Curtidas 0

Respostas

Bestschmidt

Bestschmidt

26/10/2003

Na minha opinião, acho que o sql seria melhor assim:

SELECT SSSPCODCONS, SUM(SSSPVALSERV - SSSPIRF- SSSPISS)
FROM SSSERVPREST
WHERE SSSPDATAPAGTO BETWEEN :wDatIni and :wDatFim
GROUP BY SSSPCODCONS


Dessa maneira, o sql vai desconsiderar apenas o registro que tem a data nula.

Falou?


GOSTEI 0
Agonzaga

Agonzaga

26/10/2003

Valeu Bestschmidt, deu certo.
O interessante é que li em uma apostila que quando se usa GROUP BY deve ser usando HAVING e nao WHERE, e sempre depois do Group by.


GOSTEI 0
POSTAR