This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Funky Summation
- To: xsl-list-digest at mulberrytech dot com
- Subject: Funky Summation
- From: Nate Austin <naustin at decisionsys dot com>
- Date: Fri, 15 Sep 2000 18:50:16 -0500
- Reply-To: xsl-list at mulberrytech dot com
Greetings. I've thrashed around with a few ideas to no avail, so finally to
here. Here's the problem:
<record>
<header>
<name>ralph</name>
<dest_acct_no>2222222</dest_acct_no>
</header>
<detail>
<name>george</name>
<acct_no>123456789</acct_no>
</detail
<detail>
<name>bob</name>
<acct_no>987654321</acct_no>
</detail>
</record>
I have a large number of records in similar fashion to this There is one
header record and many detail records. I need to compute a checksum of the
account numbers that is as follows:
If the number is less than 11 digits, pad it on the right with zeros. (ie.
12345678900). Take the first 6 digits minus the 2nd 6 digits. Do this for
the header record and the detail records. The checksum for each detail
record is computed by taking the absolute value of the value of the header
record minus the value of the detail record. Add each detail record's
checksum to come up with a total checksum. The example here would be:
abs((222222 - 20000) - (123456 - 78900)) + abs((222222 - 20000) - (987654 -
32100)) + ... = 157666 + 753332 = 910998.
I looked into using sum() to come up with this and a for-each. I couldn't
work it through to the end either way. If anyone could help it'd be much
appreciated!
Nate Austin
naustin@decisionsys.com
Phone: (612) 277-2523
The opinions expressed are my own and do not reflect those of Decision
Systems, Inc.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list