I have to do some arithmetic operation on Field 8 which is calculated by Field 9/Field 7
Suppose i have data like :
0800123456|JAN|2017|JAN|2018|0800123456|0|0.0000|0.00|
0800234567|JAN|2017|JAN|2018|0800234567|4|2.5812|10.32|
0800666666|JAN|2017|JAN|2018|0800666666|2|1.7255|3.45|
0800111111|DEC|2015|DEC|2018|0800111111|2|1.8312|7.32|
0800123456|JAN|2017|JAN|2018|0800123456|0|0.0000|0.00|
0800234567|JAN|2017|JAN|2018|0800234567|4|2.5812|10.32|
0800111111|DEC|2015|DEC|2018|0800111111|4|1.8312|7.32|
I used following code :
syncsort << endofsort
/INFILE $IN_FILE "|"
/fields
P_NUMBER 1:-1: en,
B_MONTH 2:-2:,
B_YEAR 3:-3: en,
D_MONTH 4:-4:,
D_YEAR 5:-5: en,
C_NUMBER 6:-6: en,
CALL_MINS 7:-7: en,
PRICE_PER_UNIT 8:-8: en,
AMOUNT 9:-9: en,
/CONDITION UNIT_PRICE_ZERO CALL_MINS = 0
/KEYS P_NUMBER ascending,B_MONTH ascending, B_YEAR ascending, D_MONTH ascending,D_YEAR ascending,C_NUMBER ascending
/SUMMARIZE
TOTAL CALL_COUNT,
TOTAL CALL_MINS,
TOTAL AMOUNT,
/DERIVEDFIELD NEW_PRICE_PER_UNIT
IF UNIT_PRICE_ZERO then PRICE_PER_UNIT
ELSE AMOUNT/CALL_MINS en 20 10/4 COMPRESS
/DERIVEDFIELD DEL "|"
/OUTFILE $OUT_FILE OVERWRITE
/REFORMAT
P_NUMBER,B_MONTH,B_YEAR,D_MONTH,D_YEAR,C_NUMBER,CALL_MINS,PRICE_PER_UNIT,DEL,AMOUNT
/STATISTICS /* Sends SyncSort */
/END
endofsort
Here i want to maintain 4 precision of unit price field.
COMPRESS is used to compress extra spaces but it also compress zeros of precision.
Can anyone suggest how to get required output.