PROCEDURE myMin LPARAMETERS f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, ; f12, f13, f14, f15, f16, f17, f18, f19, f20 LOCAL lcFld as String, lnMin as Number lnCrazyLargeNumber = 9999999 lnMin = lnCrazyLargeNumber FOR i = 1 TO PCOUNT() lcFld = "f" + ALLTRIM(STR(i)) IF TYPE(lcFld) == "N" IF &lcFld < lnMin lnMin = &lcFld ENDIF ENDIF ENDFOR IF lnMin == lnCrazyLargeNumber RETURN .null. ELSE RETURN lnMin ENDIF ENDPROCand then call it like this (and include cast)
SELECT *, CAST(mymin(f1, f2, f3, ...) AS N(10,4)) as mymin FROM mytable