Add CISTOOLS/Functions/Percent_Changed
This commit is contained in:
26
CISTOOLS/Functions/Percent_Changed
Normal file
26
CISTOOLS/Functions/Percent_Changed
Normal file
@@ -0,0 +1,26 @@
|
||||
Create Function Cistools/Percent_Changed (
|
||||
From_Number Double Precision, To_Number Double Precision
|
||||
)
|
||||
Returns Decimal(7, 2)
|
||||
Language Sql
|
||||
Specific Sequel/Pctchg
|
||||
Deterministic
|
||||
Reads Sql Data
|
||||
Returns Null On Null Input
|
||||
No External Action
|
||||
Not Fenced
|
||||
Set Option Alwblk = *Allread, Alwcpydta = *Optimize, Commit = *None, Decresult = (31, 31, 00), Dlyprp = *No, Dyndftcol = *No,
|
||||
Dynusrprf = *User, Srtseq = *Hex
|
||||
Begin
|
||||
Declare P_Intermed Float;
|
||||
Declare P_Result Decimal(7, 2);
|
||||
If From_Number <> 0 Then /*p_intermed remains null if op1=0 */
|
||||
Set P_Intermed = (To_Number - From_Number) / From_Number * 100;
|
||||
End If;
|
||||
If Abs(P_Intermed) > 99999.99 Then
|
||||
Set P_Result = 99999.99; /*Handle overflow*/
|
||||
Else
|
||||
Set P_Result = P_Intermed;
|
||||
End If;
|
||||
Return P_Result;
|
||||
End;
|
||||
Reference in New Issue
Block a user