Bases de Datos > SQL Server

 actualizar tablas....

(1/1)

AnimaSubtilis:
buenas a todos....

les expongo mi dilema :( ...

en estos momentos me encuentro desarrollando un sp para actualizar dos tablas de las mismas tablas  :mellow: ..

el chiste es el siguiente estoy desarrolando un programa para el control de la nomina por periodos de mes....

las tablas son ntem y ntemd

en ntem se guardan los proncipales en donde esta el idtercero... basico.... en fin

en ntemd estan los detalles como son horas extras..prestamos y sus valores respectivos....

la idea es que para que el contador no vuelva a digitar lo mismo cada quincena el programa lea los datos del periodo anterior y los replique en el
nuevo periodo...

ya logre que replicara las cabeceras pero al replicar los detalles se me vuelve loco ...


--- Código: SQL --- DECLARE @cnstrae VARCHAR(17)SELECT top 1 @cnstrae=cnspago FROM nper WHERE cnspago<>'0100000023'ORDER BY 1 DESC   ----0100000023 INSERT INTO ntem (idtercero,cnspago,basico,fechadocumento,usuario,//aca inserto las cabeceras y no hay problemaequipoadiciono,total,ingreso,egreso,estado)SELECT idtercero,'0100000023',basico,getdate(),usuario,host_name(),total,0,0,'Activo' FROM ntem AS a  WHERE a.cnspago=@cnstraeINSERT INTO ntemd (codconcepto,tipo,valor,idtem)                                           SELECT  b.codconcepto,b.tipo,0,c.idtem FROM ntem AS a INNER JOIN ntemd AS b ON a.idtem= b.idtem LEFT JOIN ntem AS c ON a.cnspago <> c.cnspago --and WHERE a.cnspago='0100000022' AND c.cnspago='0100000023'   
al ingresar los detalles lo que sucede es que coge todos los detalles del periodo 01000000022 osea si esta asi


--- Código: Text ---Jorge        Andres       Carlos   //masters 1                 3                4      //details2 la replica queda asi Jorge        Andres       Carlos   //masters 1                 1                1      //details2                 2                23                 3                3 4                 4                4 cuaquier comentario sera bien recibido...

de antemano gracias por su atencion....

AnimaSubtilis:
Buenas por si algo ya pude sacarlo...

me queme la cabeza pensando cosas milagrosas y la solucion era algo sencillo  :P ..

eso de ser novato...

asi queda el scrip por si alguna cosa


--- Código: SQL --- DECLARE @cnstrae VARCHAR(17)SELECT top 1 @cnstrae=cnspago FROM nper WHERE cnspago<>'0100000023'ORDER BY 1 DESC   ----0100000023 INSERT INTO ntem (idtercero,cnspago,basico,fechadocumento,usuario,//aca inserto las cabeceras y no hay problemaequipoadiciono,total,ingreso,egreso,estado)SELECT idtercero,'0100000023',basico,getdate(),usuario,host_name(),total,0,0,'Activo' FROM ntem AS a  WHERE a.cnspago=@cnstraeINSERT INTO ntemd (codconcepto,tipo,valor,idtem)                                           SELECT  b.codconcepto,b.tipo,0,c.idtem FROM ntem AS a INNER JOIN ntemd AS b ON a.idtem= b.idtem LEFT JOIN ntem AS c ON a.cnspago <> c.cnspago AND a.idtercero = c.idtercero WHERE a.cnspago='0100000022' AND c.cnspago='0100000023'    
era ovio y no se me habia pasado por la cabeza simplemente colocar que fueran iguales los terceros :wub: ...

gracias..........

Navegación

[0] Índice de Mensajes

Ir a la versión completa