|
How are you wanting to incorporate your formula? Via SQL or an IF clause? Apart from the maths error that others have pointed out, you're not using the YEAR value in your formula which you would need to use for the selection to work correctly when you go back past period one. Making the assumptions that you have two values "EndYr" and "EndPd" you could use either of the following: a) Using SQL SELECT * FROM file WHERE (EndPd = 12 AND Year = EndYr) OR (EndPd <> 12 AND ((Year = EndYr AND Period Between 1 AND EndPd) OR (Year = EndYr - 1 AND Period >= EndPd + 1))) b) Using RPG C IF (EndPd = 12 and Year = EndYr) OR C (EndPd <> 12 and ((Year = EndYr and C ((Period >= 1 and Period <= EndPd) or C (Year = EndYr - 1 and C Period >= EndPd + 1))))) Hope it helps All the best Jonathan -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Mike Wills Sent: 04 January 2006 23:32 To: RPG programming on the AS400 / iSeries Subject: Formula Question Okay, this may be a difficult one. I have a simple table layout like this. Company (4,0) Year(4,0) Period(2,0) Amount(15,2) I want to be able to take an ending period and determine 12 months back from the ending date and select records in the DB via a select statement. We are really close with the following formula: ( ( ( (period-12) / (period-12) ) * 12 ) - 11 )+period. A co-worker of mine got this far. If it wasn't for the whole divide by zero bit as this portion ( (period-12)/(period-12) ) would for period 12, it would work great. Short of a case statement is there a better way to handle divide by zero? Or is the a better formula that we aren't seeing? -- Mike Wills koldark@xxxxxxxxx http://mikewills.name Want Gmail? Email koldark+gmail@xxxxxxxxx to get on my waiting list. "There are 10 types of people in the world: those who understand binary, and those who don't." -Unknown
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.