Store Procedure con registros aleatorios

Publicado en 'Programación' por cesarin2, 9 Ene 2014.





  1. cesarin2

    cesarin2 Miembro nuevo

    Registro:
    25 Ago 2009
    Mensajes:
    46
    Likes:
    0




    Que tal compas porfa si me pueden apoyar con este casito tengo mi tabla filtrada con los registros que realmente necesito el IDPRIN y IDSEC que son el IDCLI de la misma persona; recordando que una persona tenía 2 IDCLIENTE por lo que en una tabla tengo ambos registros.

    Tabla PRUEBA:
    IDPRIN-IDSEC-PATERNO-NOMBRE-SEXO-FEC_NAC
    222 - 333 - LOPEZ - LUIS - M - 1980-10-03
    555 - 666 - PEREZ - MARIA- F- 1974-02-13

    Ahora el siguiente paso es asignar el IDPRIN y IDSECa las variables

    DECLARE @GGG VARCHAR(40)
    DECLARE @HHH VARCHAR(40)
    SET @GGG =( SELECT uIdPrin FROM PRUEBA
    SET @HHH =( SELECT uIdSec FROM PRUEBA )

    Si mi tabla tuviera un registro las variables sin problemas tendrian asignados 222 y 333 respectivamente pero mis variables necesitan se les asigne los ID's de cada registro

    Ejemplo del 1er registro ... variables tomas las Id's respectivas en las variables
    @GGG=222
    @HHH=333

    [ Lo siguiente es realizar ciertas operaciones con dichas variables en distintas tablas .... ]

    Una vez terminado dicho proceso; deberá hacerlo con los IDPRIN IDSEC del 2do registro y asi consecutivamente.
    @GGG=555
    @HHH=666

    De forma que el store use las variables por cada Id's de cada registro de la tabla ¿Cómo hago para realizar esa asignación de cada registro para usarla en el Store?
     


  2. galessandro

    galessandro Miembro frecuente

    Registro:
    21 Mar 2012
    Mensajes:
    230
    Likes:
    26
    Bueno no se si te entendí pero me parece que simplemente almacenas el query en un cursor y lo recorres, vamos a ver dijo un ciego:

    1.- Lo almacenas en un cursor.
    CURSOR registros IS (SELECT campo1, campo2 from ...)

    2.- Recorres cada registro del cursor.
    LOOP FETCH registros into valor1, valor2;

    3.- Dentro del cursor realizas tu procesos y esoo es todo.
    executasProcesos;
    END LOOP;