Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/12/2013, 12:25
Avatar de slaxsna
slaxsna
 
Fecha de Ingreso: diciembre-2010
Ubicación: Tampico
Mensajes: 38
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Comparar una tabla registro por registro con otra

@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 original
  1. BEGIN
  2.   DECLARE @NEMPLEADO VARCHAR(20)
  3.     DECLARE @CANTIDAD DECIMAL(19,2)
  4.     DECLARE @QUINCENA VARCHAR(20)
  5.     DECLARE @descuento DECIMAL(19,2)
  6.     DECLARE @suma INT
  7.     DECLARE @x INT
  8.    
  9.     SET @descuento = 0
  10.     SET @suma = 0
  11.     SET @x = 1
  12.  
  13.     DECLARE EXPORT CURSOR FOR
  14.     SELECT nempleado, cantidad, quincena FROM info_retenedores
  15.     OPEN EXPORT
  16.     FETCH NEXT FROM EXPORT
  17.     INTO @NEMPLEADO, @CANTIDAD, @QUINCENA
  18.     WHILE @@FETCH_STATUS = 0
  19.         BEGIN
  20.             INSERT INTO exportaciones
  21.             SELECT SUBSTRING(@QUINCENA,1,4)+'-'+SUBSTRING(@QUINCENA,5,6), [EMISOR], SUBSTRING([POLIZA], CHARINDEX('-', [POLIZA]) + 1, LEN([POLIZA])),
  22.             [No EMPLEADO], [ASEGURADO], [CONTRATANTE], [DESC QNAL], [DEPENDENCIA]
  23.             FROM polizas WHERE [No EMPLEADO] = @NEMPLEADO AND LTRIM(RTRIM([No EMPLEADO])) != ''
  24.  
  25.             FETCH NEXT FROM EXPORT
  26.             INTO @NEMPLEADO, @CANTIDAD, @QUINCENA
  27.         END
  28.     CLOSE EXPORT
  29.     DEALLOCATE EXPORT
  30. 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.