![]() |
problema con resultado de SP
hola amigos del foro, comentarles que estoy haciendo un sistema de control de una farmacia y me pidieron un informe del movimiento fisico mensual y para lo cual hice el siguiente SP en el cual saco un listado de todos los medicamentos y luego de cada uno de ellos saco saldo anterior, saldo actual,egresos,ingresos, pero tengo el problema de que cuando quiero sacar el saldofisico de un medicamento y el resultado es null quiero asignar a ese valor el saldo anterior no me hace nada y al contrario cuando ejecuto el sp si el medicamento xxxx tiene saldo fisico 20 y luego el yyyyy y el zzzz votan resultado de null en la ejecucion me arrastra el ultimo valor en este caso 20 como puedo hacer para que mi Sp vote null si el select vota un resultado de null
el codigo es el siguiente /******** en esta parte obtengo a todos los medicamentos****/ for select c.nrocuentacon,c.descripcion,t.codtipomaterial,t.detalle,m.codmaterial,m.descripcion,m.unidad from saldo s, materialmedicamento m,material_tipomaterial mt,tipo_material t, tipomaterial_cuentacontable tc,cuenta_contable c where ((s.detalle like '* SALDO%')AND(s.codm=m.codmaterial)AND(m.codmaterial=mt.codm)and(mt.codtm=t.codtipomaterial)and (t.codtipomaterial=tc.codtipomaterial)and(tc.nrocuentacon=c.nrocuentacon)and (c.nrocuentacon like '125%')) into :nrocuenta,:nombrecuenta,:nrotipo,:detalle,:codigom,:nombrec,:unidad do begin /*******aqui obtengo el saldo del mes anterior de cada medicamento **/ select saldocantidad from mostrar_saldo (:anio,:mes,:codigom) into :saldocantidad; /*******en este select es donde tengo problemas obtengo el saldo actual de cada medicamento select saldo.saldofisico from saldo s where ((saldo.codm=:codigom) and (extract (year from s.fecha)=:anio)and (extract (month from s.fecha)=:mes) and (saldo.valido='V' or (saldo.detalle like '*%') )) into :fisicoactual; /**** pregunto si el resultado del select anterior es null y quiero q ese valor sea 0 pero no me hace nada cuando ejecuto el SP***//// if (fisicoactual IS NULL) then fisicoactual=0; suspend; Y como les comentaba cuando ejecuto el SP si la variable fisicoactual tiene el valor null se carga a esa variable el valor anterior del medicamento anterior , como puedo solucionar ese problema, me explico de mejor manera Valor esperado Valor generado por el SP CodigoM fisicoactual fisicoactual 0102 23 23 0103 null 23 0104 121 121 0105 null 121 0106 null 121 Espero me hayan entendido y como veran los valores se repiten cuando el valor obtenido es null, ahhhh estoy trabajando con firebird 1.5 e ibexpert Muchas gracias por la ayuda que me brinden |
La franja horaria es GMT +2. Ahora son las 10:08:54. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi