CLEAR CREATE CURSOR newData (Field1 C(10), Field2 C(7)) APPEND BLANK APPEND BLANK APPEND BLANK APPEND BLANK index on Padr(myUdf1(Field1), 20) + Padr(myUdf2(Field2), 15) tag F_1_2_new CREATE CURSOR oldData (Field1 C(10), Field2 C(7)) APPEND BLANK APPEND BLANK APPEND BLANK APPEND BLANK index on Padr(myUdf1(Field1), 20) + Padr(myUdf2(Field2), 15) tag F_1_2_Old SYS(3054,12) Select ; Nw.Field1, Ol.Field2 ; from newData Nw ; join oldData Ol ; on Padr(myUdf1(ol.Field1), 20) + Padr(myUdf2(ol.Field2), 15) ; = Padr(myUdf1(nw.Field1), 20) + Padr(myUdf2(nw.Field2), 15) ; INTO CURSOR res select newData delete TAG F_1_2_new index on Padr(myUdf1((Field1)), 20) + Padr(myUdf2((Field2)), 15) tag F_1_2_new select oldData delete TAG F_1_2_Old index on Padr(myUdf1((Field1)), 20) + Padr(myUdf2((Field2)), 15) tag F_1_2_Old ? Select ; Nw.Field1, Ol.Field2 ; from newData Nw ; join oldData Ol ; on Padr(myUdf1(ol.Field1), 20) + Padr(myUdf2(ol.Field2), 15) ; = Padr(myUdf1(nw.Field1), 20) + Padr(myUdf2(nw.Field2), 15) ; INTO CURSOR res SYS(3054,0) FUNCTION myUdf1(val1) RETURN val1+val1 RETURN FUNCTION myUdf2(val2) RETURN val2+val2 RETURNThanks,