@Libras mira te comento, no he podido crearlo como tu me diste el ejemplo, sin embargo tengo un cursor que te comenté que estaba haciendo, quiero ver si me puedes ayudar un poco, ya que quede con cursor trataré de hacerlo sin cursor pero quisiera entender bien el problema que se me presenta,
Esto es lo que hago
Código SQL:
Ver originalBEGIN
DECLARE @NEMPLEADO VARCHAR(20)
DECLARE @CANTIDAD DECIMAL(19,2)
DECLARE @QUINCENA VARCHAR(20)
DECLARE @descuento DECIMAL(19,2)
DECLARE @suma INT
DECLARE @x INT
SET @descuento = 0
SET @suma = 0
SET @x = 1
DECLARE EXPORT CURSOR FOR
SELECT nempleado, cantidad, quincena FROM info_retenedores
OPEN EXPORT
FETCH NEXT FROM EXPORT
INTO @NEMPLEADO, @CANTIDAD, @QUINCENA
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO exportaciones
SELECT SUBSTRING(@QUINCENA,1,4)+'-'+SUBSTRING(@QUINCENA,5,6), [EMISOR], SUBSTRING([POLIZA], CHARINDEX('-', [POLIZA]) + 1, LEN([POLIZA])),
[No EMPLEADO], [ASEGURADO], [CONTRATANTE], [DESC QNAL], [DEPENDENCIA]
FROM polizas WHERE [No EMPLEADO] = @NEMPLEADO AND LTRIM(RTRIM([No EMPLEADO])) != ''
FETCH NEXT FROM EXPORT
INTO @NEMPLEADO, @CANTIDAD, @QUINCENA
END
CLOSE EXPORT
DEALLOCATE EXPORT
END
Explicando lo que hago es, en otro stored procedure yo inserto unos registros en este caso 150 desde un archivo y los guardo en info_retenedores, después ejecuto este procedimiento, el cual va lee registro por registro de la tabla info_retenedores, después me interesan solo 3 campos de esa tabla, nempleado, cantidad, quincena los inserto en una tabla llamada exportaciones con otros datos que saco de una tabla master llamada polizas.
Hace lo que quiero pero no lo hace bien ya que al momento de meter los datos en exportaciones, mete todos los que encuentra en polizas y no debería ser así, ya que si en info_retenedores dice que fulanito se le descontaron 1100 pesos y en la tabla de polizas tiene 3 polizas: una de 500, otra de 600 y otra de 300, entonces si solo se le descontaron 1100 pesos que polizas tendría que solo seleccionar, en este caso sería la de 500 y la de 600 ya que la suma de ambas da la cantidad de descuento, sin embargo el proceso que hago me trae las 3 polizas, por que aún no hago operaciones, quisiera ver si me podrías echar la mano en esta situación, ya con mi ejemplo más real.
Muchas gracias de todas formas.