diferença na soma..

Delphi

10/11/2004

bom dia galera..
estou fazendo uma consulta mas está dando diferença de 1centavo na somatória de algumas notas..
como são mtas no final acaba sendo ruim isso..
estou usando a seguinte query

DTMDB.QResumoNota.Close;
DTMDB.QResumoNota.SQL.Clear;
DTMDB.QResumoNota.SQL.Add(´SELECT CUPOMFISCAL.CODCENTROCUSTO, SUM(ITENS.QTDADE) AS QUANTIDADE,[b:40e00868e8]SUM(ITENS.QTDADE*ITENS.PRECO) AS PREÇO[/b:40e00868e8],´);
DTMDB.QResumoNota.SQL.Add(´CENTROCUSTO.NOME,NOTAFISCAL.CODLOCAL,NOTAFISCAL.TEXTO FROM CUPOMFISCAL,CENTROCUSTO,ITENS,NOTAFISCAL´);
DTMDB.QResumoNota.SQL.Add(´WHERE CUPOMFISCAL.NOTAFISCAL=:COD AND CUPOMFISCAL.CODIGO = ITENS.NUMCUPOM AND´);
DTMDB.QResumoNota.SQL.Add(´CUPOMFISCAL.CODCENTROCUSTO = CENTROCUSTO.CODCENTROCUSTO AND CUPOMFISCAL.NOTAFISCAL = NOTAFISCAL.CODNOTA GROUP BY CUPOMFISCAL.CODCENTROCUSTO,CENTROCUSTO.NOME,NOTAFISCAL.CODLOCAL,NOTAFISCAL.TEXTO´);
DTMDB.QResumoNota.ParamByName(´COD´).ASSTRING:= DTMDB.NotaFiscalCodNota.AsString;
DTMDB.QResumoNota.PREPARE;
DTMDB.QResumoNota.OPEN;

na parte que tá em negrito é o campo que tá a tal diferença..

pq fica umas multiplicações do tipo;

qtdade valor
22,315 2,198

no final tem que dar um valor com duas casas..
no dbgrid dá certo pois faço isso:
procedure TDTMDB.ItensCalcFields(DataSet: TDataSet);
var temp: real;
temp2:string;
begin
temp:=DTMDB.ItensQtdade.Value * DTMDB.ItensPreco.Value;
temp2:= floattostr(temp);
DTMDB.ItensValortotal.Value:= strtofloat(formatfloat(´#,,0.00´,strtofloat(temp2)));
end;

mas na query não estou conseguindo..

valeu
Eric


Eric.miranda

Eric.miranda

Curtidas 0

Respostas

Osocram

Osocram

10/11/2004

Bom... pod acontecer por causa do arredondamento.... q a formatacao faz....


GOSTEI 0
POSTAR