[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