[firebase-br] Equivalencia

Marcelo Silva marcvan em ig.com.br
Sex Jul 1 11:04:45 -03 2005


Pessoal estou com problemas em um relatório...
Este relatório é feito em clipper e estou passando para o delphi com 
Firebird...
Tenho no clipper a seguinte função:
...
xEnt := Round( F_BANCO->valor * RATENT->perce / 100, 2 )
...

No firebird tenho:

SELECT
  A.OPERADORA,
  A.DAT_INI,
  A.DAT_FIM,
  CAST(COUNT(A.OPERADORA)+
    (SELECT COUNT(B.OPERADORA) FROM REL_COB B
    WHERE(B.USUARIO = A.USUARIO)
        AND(B.TIP_EVE = 'N')
        AND(B.OPERADORA = A.OPERADORA))AS INTEGER) AS QTD_OPE,
  (SELECT SUM(B.VALOR) FROM REL_COB B
    WHERE(B.USUARIO = A.USUARIO)
        AND(B.TIP_EVE = 'N')
        AND(B.OPERADORA = A.OPERADORA)) AS VALOR,
  (SELECT SUM(C.VAL_ATU) FROM REL_COB C
    WHERE(C.USUARIO = A.USUARIO)
        AND(C.TIP_EVE = 'N')
        AND(C.OPERADORA = A.OPERADORA)) AS VAL_ATU,
  CAST(SUM(((CAST(A.VAL_REN AS NUMERIC(18,6))/A.TOT_REN))*A.VAL_ENT) AS
    NUMERIC(18,2)) AS VAL_REN,
  A.USUARIO
FROM REL_COB A
WHERE
  (A.EVENTO IN('30','38','43','34'))
  AND(A.USUARIO = :pUsuario)
  AND(A.TIP_EVE = 'P')
GROUP BY A.OPERADORA, A.DAT_INI, A.DAT_FIM, A.USUARIO
ORDER BY 1

--- Acontece que os resultados estão dando diferença de centavos
pelo que vejo a diferenca está em Round() do clipper versos Cast() do 
firebird

Alguém pode me dizer como fazer para que os calculos batam ?

Por exemplo no clipper da 1500,97 no firebird 1500,92

Já olhei os registros e os mesmos está com os valores exatamente iguais, 
dando diferença somente nas somas


* Desculpem a carta...

Marcelo Silva
Cel. 11 9693-4251
ICQ - 49224093
MSN marcvan em ig.com.br



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.323 / Virus Database: 267.8.2/29 - Release Date: 27/06/2005





Mais detalhes sobre a lista de discussão lista