Amigos como estan, queria consultarles una duda que tengo, estoy creando una 
funcion, la cual me retorna varios registros, la consulta es mas o menos la 
siguiente, tengo que retornar el listado de todos los clientes a los que se les 
ha vendido en el mes, cuanto se les ha vendido etc etc, ademas tengo que 
retornar todos los abonos que han hecho los clintes en el mismo mes total 
abonado etc etc, y ademas de llenar algunos campos que estan  referenciados a 
otras tablas, vendedor, ciudad, codigo de retencion etc etc, lo cual no es 
posible hacerlo en un solo select,  entonces lo que hago es crear una tabla 
temporal con  los campos que quiero que retorne en el resultado , luego hago el 
select de todas la ventas que he tenido en el mes y las recorro con un loop y 
hago los calculos que tengo que hacer hago los select que tengo que hacer de 
uno en uno por ejemplo para tener los datos del vendedor

 

select into vVendedor vennom from vendedor where vencod=rventas.vencod;

y asi para todos los campos que necesito, luego que tengo todo compruebo si ya 
esta insertado ya el registro del cliente en la tabla temporal con un select si 
hay actualizo los datos caso contrario hago un update en la tabla temporal y 
voy actualizando los datos para obtener el resultado, al final hago un select 
de toda la tabla temporal  en un cursor y de ahi retorno los valores, pero no 
se muy bien si seria la forma correcta de realizarlo queria apelar a su 
experiencia a ver si me ayudan a vercomo deveria ser la forma ideal de hacer 
este tipo de funciones.

 

Saludos
                                          
_________________________________________________________________

Responder a