none
Uso de fechas y valores float RRS feed

  • Pregunta

  • Buenas tardes compañeros estoy en un dilema, tengo una tabla principal por razones de simplicidad le quite algunos datos, en esta tabla estoy actualizando mis datos cada vez que actualizo un cierto campo se hace como un tipo historial en una segunda tabla de los movimientos que hubo con sus respectivas fechas de entrada y salida de esos movimientos, por una que otra razon el IF 1 se convierte en "segmentos" de 1.1,1.2,1.3...1.n. Mi problema es que necesito que al ingresar el registro 1.1, es decir el primer segmento del 1, me actualice la fecha de salida del 1, pero si ingreso 1.2, 1.3 ya no se vuelva actualizar esa misma fecha.

    Primer tabla		
    IF	MOV         	CATEGORIA
    1	I	                             3
    2	I	                             5
    3	R	                             1
    1.1	F	                             3
    1.2	P	                             2
    
    Segunda tabla				
    				
    ID	IF	MOV		
    1	1	I	      12/6/2017	        13/06/2017
    2	1	R	      13/06/2017	12/10/2017
    3	1.1	P	      12/10/2017	15/10/2017
    4	1.1	R	      15/10/2017	18/10/2017
    5	1.1	I	      18/10/2017	23/10/2017
    6	1.1	F	      23/10/2017	
    				
    7	1.2	R	      15/10/2017	23/11/2017
    8	1.2	P	      28/11/2017	

    Trigger que estoy utilzando para el historico

    create trigger InsertarHistorial 
    on 
    tabla1
    after update
    as begin
    update (MOV)
    begin 
    insert into tabla2 (IF,MOV,Salida)
    select i.IF,i.MOV,GETDATE()
    from inserted i
    inner join deleted d on i.IF=i.IF 
    end
    end
    go

    • Editado AlexP5 martes, 18 de julio de 2017 20:34
    martes, 18 de julio de 2017 18:08

Todas las respuestas

  • Hola que tal. Con que mecanismo están creando la tabla histórica? 

    Si lo realizan mediante el código de la aplicación, deberían utilizar esa misma lógica para buscar el registro inmediato anterior al cual actualizarle la fecha.

    La otra alternativa puede ser utilizar un Stored Procedure que tenga esta lógica de actualizar las fechas de acuerdo a los requerimientos.

    Y como último recurso utilizaría un Trigger que ante el insert en la Primera Tabla, realice la actualización en la tabla de historia.

    Saludos.


    Mariano K.

    martes, 18 de julio de 2017 18:25
  • Lo estoy haciendo mediante un trigger y un procedimiento almacenado, y si funcionan bien cuando se trata de actualizar por ejemplo todos los quesean 1 o todos los que sean 1.1, lo que que cuando se ingrese el  1.1 se actualice la fecha del ultimo 1 ingresado
    martes, 18 de julio de 2017 18:43
  • Alex, podrías por favor pasar el código del SP, y el trigger?

    No esta muy claro la lógica.

    Abrazo

    martes, 18 de julio de 2017 20:23
  • Me confundi solo uso un trigger y es este compañero

    create trigger InsertarHistorial 
    on 
    tabla1
    after update
    as begin
    update (MOV)
    begin 
    insert into tabla2 (IF,MOV,Salida)
    select i.IF,i.MOV,GETDATE()
    from inserted i
    inner join deleted d on i.IF=i.IF 
    end
    end
    go

    martes, 18 de julio de 2017 20:34