Justin wrote:
yes.  The question is why are the to sides not equal anymore

Take this

Select
    '2',
    round(sum( beginBalance ),6) as beginbalance,
    round(sum( negative ),6) as debit,
    round(sum( positive ),6) as credit,
    round(sum( difference ),6) as difference,
    round(sum( endbalance),6) as endbalance
 from trailbalance
 union
 Select
    '1',
    sum( round(beginBalance,6)) as beginbalance,
    sum( round(negative,6)) as debit,
    sum( round(positive,6)) as credit,
    sum( round(difference,6)) as difference,
    sum( round(endbalance,6)) as endbalance
 from trailbalance

"1" -0.000006 -11250546.743752 11250546.743752 0.000000 -0.000007 "2" 0.000000 -11250546.743752 11250546.743752 0.000000 0.000000

At the very least this show a clear warning when rounding do it after all the sum function is called not before.

IFAIK (dimly recalling numerical analysis courses at university) SUM and ROUND can *never* be commuted. In general the recommended approach is to round as late as possible and as few times are possible - so your 1st query is the correct or best way to go.

Cheers

Mark

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to