Pues lamento decirte que si el campo es numérico, no podrás ingresarle ningún carácter alfabético. Solo numérico. Has pensado tal vez la posibilidad de insertar, en los casos que no curse, ¿un 0?
Bien... en mi opinión, estimado Monk... vos tenes una buena estructura de tu tabla. En el campo indique validas si se cursa una asignatura... si el valor es si, se cargaran las notas (imagino) y podrás hacer tus operaciones aritméticas. Si el campo indique almacena No, cárgale un 0 y cuando hagas las operaciones valida alguna condición para que cuando sea no, pues no sume o no haga nada... que se yo! :) :) :)
Lo otro.. es que los campos los dejes como caracteres y metas los números cuando sea SI o "nc" cuando sea NO. Cuando vos extraigas los datos para las operaciones, los datos que sean números (pero que están contenidos en campos carácter) transformalos a tipo NUMERIC con la función VAL().
Suponte que tenes el campo: nota1, nota2 y son de tipo CARÁCTER. Ahí guardas las notas 80 y 90 respectivamente.
Y quieres obtener la suma de esos 2 campos. Pero son tipo carácter. Entonces para poder transformarlos como números, haces así:
LOCAL lnNota1, lnNota2, lnTotal
SELECT tabla
lnNota1 = tabla.nota1
lnNota2 = tabla.nota2
**--Pasamos a numérico
lnNota1 = VAL(lnNota1)
lnNota2 = VAL(lnNota2)
**--Total
lnTotal = lnNota1 + lnNota2
**--Para guardar el valor en algún otro campo, si es NUMÉRICO:
INSERT INTO tabla1(total) VALUES(lnTotal)
TABLEUPDATE(.F.)
**--Si el tipo de campo es carácter... pasamos el dato de numérico a carácter:
lnTotal = ALLTRIM(STR(lnTotal))
INSERT INTO tabla1(total) VALUES(lnTotal)
**--
Tableupdate(.f.)
Y listo! :)
Proba y me avisas! :) :) No olvides cerrar la pregunta si aclaras la duda! :)
Un abrazo!
Desde Managua, Nicaragua!
Ravenn :D :D :D