Subject: RE: SQL dividing the sum of two results on a select From: "DeLong, Eric" Date: Thu, 18 Sep 2003 12:48:34 -0500 List-archive: List-help: List-id: Midrange Systems Technical Discussion List-post: List-subscribe: , List-unsubscribe: ,

```Dave,

You are getting whacked by the decimal precision rules in place for
expressions.  Whenever calculating an expressions, the rule is to not lose
"whole digits", or anything to the left of the decimal point.  Since you're
calculating a percentage, you need to force the result to be of a size that
will hold the result.

SELECT
TSSLS#,
IDGRP,
SUM(TSSLS\$),
SUM(TSCOMD),
dec(SUM(TSCOMD)/SUM(TSSLS\$),20,10)
FROM LIB.SLPTS
JOIN LIB.INDESCRP  ON IDS# = TSPRD and IDSF = 'A'
WHERE IDGRP = 957 AND   TSSTS <> 'D'
GROUP BY IDGRP, TSSLS#
ORDER BY IDGRP, TSSLS#

There's a little about assignment rules here:
http://publib.boulder.ibm.com/iseries/v5r1/ic2924/info/db2/rbafzmst47.htm

Eric DeLong
Sally Beauty Company
MIS-Project Manager (BSG)
940-898-7863 or ext. 1863

-----Original Message-----
From: Smith, Dave [mailto:DSmith@xxxxxxxxx]
Sent: Thursday, September 18, 2003 12:23 PM
To: midrange-l@xxxxxxxxxxxx
Subject: SQL dividing the sum of two results on a select

Could anybody tell me why (SUM(TSCOMD)/SUM(TSSLS\$)) always returns 0 in the
following select statement:

V5R2,
The two SUM() fields never equal 0 yet the result of the division comes back
as 0?????????

SELECT
TSSLS#,
IDGRP,
SUM(TSSLS\$),
SUM(TSCOMD),
(SUM(TSCOMD)/SUM(TSSLS\$))
FROM LIB.SLPTS
JOIN LIB.INDESCRP  ON IDS# = TSPRD and IDSF = 'A'
WHERE IDGRP = 957 AND   TSSTS <> 'D'
GROUP BY IDGRP, TSSLS#
ORDER BY IDGRP, TSSLS#

_______________________________________________
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.

```